Ersetzen Sie den Begrüßungsbildschirm durch die Liste der zuletzt verwendeten Dateien

18

Der Begrüßungsbildschirm ist anfangs nützlich, aber jetzt möchte ich etwas Nützlicheres: Ich möchte beim Starten von Emacs eine Liste der zuletzt geöffneten Dateien anzeigen lassen, wenn keine vordefinierte Datei geöffnet werden muss. Noch besser, wenn es das helm-recentfFenster sein kann (ich benutze helmPaket)

Biocyberman
quelle
Ich sehe, dass Sie eine Lösung gefunden haben, aber ich wollte nur darauf hinweisen, dass Sie sich nicht auf Methoden beschränken müssen, die vom Emacs-Team entwickelt wurden startup.el. .
Gesetzesliste

Antworten:

15

Es gibt jetzt auch ein Paket für MELPA: Dashboard: https://github.com/rakanalh/emacs-dashboard . Das Paket ermöglicht es Ihnen, einen Begrüßungsbildschirm wie im Bild unten zu haben:

Dashboard-Screenshot

Hier ist das use-packageSnippet aus meiner Konfiguration, um es mit einem benutzerdefinierten Bannerbild und einer Textzeile sowie einer Liste der zuletzt verwendeten Dateien und Lesezeichen einzurichten:

(use-package dashboard
    :ensure t
    :diminish dashboard-mode
    :config
    (setq dashboard-banner-logo-title "your custom text")
    (setq dashboard-startup-banner "/path/to/image")
    (setq dashboard-items '((recents  . 10)
                            (bookmarks . 10)))
    (dashboard-setup-startup-hook))
Tirocinium
quelle
10

Manomagisch: D, nachdem ich die Frage gestellt hatte, erhielt ich die funktionierende Lösung, indem ich ein einzelnes Anführungszeichen in meinem Text entfernte .emacs

(setq initial-buffer-choice '(helm-recentf)) ;; Does not work

Dazu:

(setq initial-buffer-choice (helm-recentf)) ;; Works!!!
;; I still haven't tried doing with the built-in recentf only

Oder dieses:

(setq initial-buffer-choice 'helm-recentf) ;; Works!!!

Aktualisieren

Mit der obigen Lösung funktioniert es immer noch nicht. Ich habe die Datei geöffnet, aber Emacs wechselt scratchsofort danach in den Puffer. Ich muss zum Puffer der gewünschten Datei springen. Brauche also noch mehr Hilfe dazu.

Update 2

Nach einigem Ringen mit elispbekam ich, dass dieses jetzt wirklich funktioniert:

(require 'recentf) ;; Provided for the whole picture
(require 'helm)
(require 'helm-config)

(defun startwithrecentf()
 (buffer-name (find-file (car (helm-recentf))))
  )
(setq initial-buffer-choice (startwithrecentf)) 

Update 3

Das Folgende ist kompakter. Es wird auch grob damit umgegangen, dass Emacs mit zusätzlichen Argumenten aufgerufen wird, dhemacs somefile

(require 'recentf) ;; Provided for the whole picture
(require 'helm)
(require 'helm-config)
(if (< (length command-line-args) 2) 
(setq initial-buffer-choice (car (helm-recentf)))
)
Biocyberman
quelle
2
Ich glaube, Ihr erster Versuch sollte sein (setq initial-buffer-choice 'helm-recentf). Das initial-buffer-choicekann eine Funktion als Wert haben, die die zitierte Form ohne Klammern ergibt.
Bedeutungsvoller Benutzername
Offensichtlich mein Elisp-Neuling-Können.
Biocyberman
Wir sind hier um zu lernen :). Mit diesem Formular erhalte ich den helm-recentfPuffer beim Start, sodass Ihre Update 2-Lösung nicht benötigt werden sollte.
Bedeutungsvoller Benutzername
@MeaningfulUsername Ich habe Update 3 gemacht : D Es behandelt den Fall, dass Sie Emacs mit einem Dateinamen oder etwas schon aufrufen.
Biocyberman
Und wie Sie bereits bemerkt haben, wechselt die zitierte Version nicht in den Puffer, so dass es scheint, dass Ihr (Auto (helm-recentf)) die richtige Lösung ist. (Ich dachte, es sollte ein Lambda-Ausdruck statt nur eine Liste sein, aber das hat nicht funktioniert ...)
Sinnvoller Benutzername
2

Hier ist ein Paket, das recentf-open-filesbeim Starten von Emacs ohne zu öffnende Datei angezeigt wird: https://github.com/zonuexe/init-open-recentf.el

Konfiguration mit Use-Package :

(recentf-mode 1)
(setq recentf-max-menu-items 25)

(use-package init-open-recentf
  :config
  (init-open-recentf))
Njam
quelle