2010-08-19 13 views
32

Kann Emacs kürzlich geöffnete Dateien öffnen (z. B. ein Menü wie Datei> Letzte öffnen ...)?"Zuletzt geöffnete" in Emacs öffnen

Ich weiß, dass Aquamacs, für OS X, diese Funktion hat. Aber ist es allen Emacs Versionen gemeinsam?

Antwort

13

Gewöhnliches GNU Emacs hat kein Menü, das kürzlich geöffnete Dateien anzeigt. Alle Emacs-Befehle haben jedoch eine Historie, einschließlich find-file (C-x C-f). Wählen Sie "Datei | Öffnen "im Menü oder Öffnen einer Datei mit emacsclient fügt auch diese Geschichte hinzu. Nachdem Sie C-x C-f gedrückt haben, drücken Sie up und down, um durch den Verlauf geöffneter Dateien zu navigieren.

Der Verlauf wird zwischen Sitzungen gespeichert, wenn Sie die Sitzungsspeicherung mit dem desktop-Paket aktivieren.

+1

Eine gute alte Funddatei wird von den meisten Leuten wissentlich oder unwissentlich durch 'ido-find-file' ersetzt. Die Geschichte von Ido ist ein ganz anderes Geschäft. recentf könnte hier eine bessere Lösung sein. – Jaseem

+4

Diese Geschichte wird jedoch gelöscht, nachdem Sie Emacs geschlossen haben. – fiacobelli

+0

@fiacobelli Daher mein Vorschlag, das 'desktop' Paket zu verwenden. – Gilles

31

Die idiomatischste Methode, diese mir bekannte Funktionalität zur Verfügung zu stellen, ist die Verwendung von recentf-mode (mehr here). Ermogliche es in meiner Initialisierungsdatei mit:

(require 'recentf)

(recentf-mode 1)

Es bietet dann eine interaktive Funktion, recentf-open-files, die ich C-x f binden, die eine nummerierte Menü enthält Dateien der zuletzt geöffneten dass Sitzungen umfasst Das heißt, selbst wenn Sie Emacs herunterfahren und neu starten, werden Ihre zuletzt geöffneten Dateien beibehalten. Sie können die Funktion einen Beschleuniger mit einer anderen Zeile in der Initialisierungsdatei binden, wie:

(global-set-key "\C-xf" 'recentf-open-files)

(Optional)

Wenn Sie umfangreiche Verwendung von Tramp machen, recentf auch diese Dateien verfolgen, und Es ist eine periodische Säuberungsaktion, die ein echtes Durcheinander sein kann, da die Dateien entfernt sind. Verhindern Sie dies, indem Sie dies in Ihrem Startdatei setzen:

(setq recentf-auto-cleanup 'never)

+0

Ich würde befürworten gegen binding recentf zu 'C-x f'. Es ist das, was Sie brauchen, um eine bestimmte Datei zu öffnen, die möglicherweise nicht in unserer Geschichte enthalten ist. Wenn Sie Ido aktiviert haben, verwenden Sie 'ido-find-file' für Fuzzy-Matching und Geschwindigkeit. In meinem Fall ist das "C-x C-f" auf "ido-find-file" und "C-x C-r" auf "recentf-open-files" abgebildet. – Jaseem

4

GNU Emacs tut gehören Bibliothek recentf.el, da Emacs 22. Tu einfach, was durch R. P. Dillon angegeben.

5

Wenn Sie wollen einfach nur die Geschichte zwischen Minipuffer Emacs Anrufungen Sie speichern können die folgenden in Ihrem .emacs setzen:

(savehist-Modus 1)

Im Gegensatz zu den Desktop-Paket, das alle retten können Ihre offenen Puffers über alle Aufrufe, dies tut nur die Minipuffer Geschichte (zB beim Öffnen einer Datei können Sie den Pfeil nach oben verwenden, um durch die Liste der Dateien zu navigieren, die Sie in einer vorherigen Sitzung geöffnet haben).

+0

Ich denke, das ist die beste Lösung! Sie brauchen keinen Desktop. In der Tat wollen Sie wahrscheinlich nicht alle Puffer gespeichert werden ... – Skuge

Verwandte Themen