Wenn ich die Anpassungsoptionen für ido-mode
( M-x customize-group
RET ido
RET) betrachte, sehe ich keine Optionen zum Aktivieren des von Ihnen beschriebenen Fahrradverhaltens.
Sie können Ihrer Init-Datei jedoch Folgendes hinzufügen:
(require 'recentf)
(defun ido-recentf-open ()
"Use `ido-completing-read' to find a recent file."
(interactive)
(if (find-file (ido-completing-read "Find recent file: " recentf-list))
(message "Opening file...")
(message "Aborting")))
(global-set-key (kbd "C-x C-r") 'ido-recentf-open)
Mit dieser Option können Sie auf drücken C-x C-r, um Ido für die Auswahl der zuletzt geöffneten Dateien abzuschließen.
Standardmäßig werden die 20 neuesten Dateien im Verlauf gespeichert. Ich schlage vor, Sie kurbeln das auf etwa 150 an, indem Sie Folgendes einstellen recentf-max-saved-items
:
(setq recentf-max-saved-items 150)
Bonus: Zugriff auf aktuelle Dateien, On-Steroids Edition
Ich sehe es nicht an vielen Stellen erwähnt, aber Ido Virtual Buffers machen es super einfach , auf aktuelle Dateien zuzugreifen. Aktivieren Sie sie wie folgt:
(setq ido-use-virtual-buffers t)
Das Verhalten, das Sie erhalten, ist das folgende:
Wenn nicht nil
, beziehen Sie sich auf frühere ("virtuelle") Puffer sowie auf vorhandene.
Im Wesentlichen funktioniert es wie folgt: Angenommen, Sie besuchen eine Datei und der Puffer wird von bereinigt midnight.el
. Später möchten Sie zu diesem Puffer wechseln, stellen jedoch fest, dass er nicht mehr geöffnet ist. Bei aktivierten virtuellen Puffern bleibt der Puffername in der Pufferliste (unter Verwendung der ido-virtual
Fläche und immer am Ende). Wenn Sie ihn auswählen, wird die Datei erneut geöffnet. Auf diese Weise können Sie weniger darüber nachdenken, ob kürzlich geöffnete Dateien noch geöffnet sind oder nicht. Meistens können Sie Emacs beenden, neu starten und dann zu einem Dateipuffer wechseln, der zuvor geöffnet war, als wäre er es noch.
C-x C-r
es nicht möglich ist, eine neue Datei zu öffnen. Ich bin auch überrascht, dass es nicht möglich ist, es auf einfache Weise anzupassen. Die Geschichte vonC-x C-f
ist ein so offensichtliches Merkmal, dass ich nicht verstehen kann, warum es noch nicht implementiert istido
. Beispiel:M-x up/down
Durchläuft die letzten Befehle,M-% up/down
durchläuft das Ersetzen der letzten Abfragen, auch außerhalb von Emacs. Alle Shells wie bash oder zsh verwenden up / down, um vorherige Befehle abzurufen. Für michC-x C-f up/down
sollte man die zuletzt geöffneten Dateien durchlaufen. Punkt.ido-use-virtual-buffers
- eine großartige Funktion, die standardmäßig aktiviert sein sollte.Obwohl sich die Bindungen im Laufe der Zeit entwickelt haben, können Sie beim Aufrufen von
ido-find-file
oderido-find-file-read-only
die folgenden Bindungen verwenden, die in der Standardkonfiguration verfügbar sind:ido-prev-work-file
ido-next-work-file
Abgesehen davon, dass diese nicht so ergonomisch angenehm sind wie die M-pund M-nBindungen, an die ich vor dem Ausprobieren von Ido gewöhnt war, sind sie auch langsam und das daraus resultierende Minibuffer-Geschwätz ist ablenkend und verwirrend. ido zeigt nicht nur einen kürzlich geöffneten Dateinamen an. Es wird gemeldet, dass "Nach ' Dateinamen ' gesucht wird ...", möglicherweise aus Unwillen, einen Namen für eine Datei anzugeben, die nicht mehr existiert.
Die Meldung "Suchen nach" kommt von der Funktion
ido-make-merged-file-list
. Beim Lesen der Quelle sehe ich keine Möglichkeit, die Magie, die diese Funktion bewirkt, zu deaktivieren.Sie können erwägen, das
ido-prev-work-file
und -Paarido-next-work-file
an etwas Natürlicheres wie C-M-pund zu binden C-M-noder die aktuellen M-p(ido-prev-work-directory
) und M-n(ido-next-work-directory
) -Bindungen für diese zu tauschen .Hier ist der Emacs Lisp-Code zum Wiederherstellen M-pund M-nDurchlaufen der zuletzt verwendeten Dateien, wobei die standardmäßigen verzeichnisorientierten Bindungen auf C-M-pbzw. C-M-nverschoben werden:
quelle
Ich habe in diesem Fall darauf zurückgegriffen, zum normalen Verhalten des Minipuffers zurückzukehren, indem ich Cf im Idomode eingebe. Dann haben Sie normale Verlaufsbrowserschlüssel. Wenn Sie es vorher wissen, kann es schnell gehen: Cxff :-)
quelle
Die Antwort von @itsjeyd ist ziemlich vollständig. Lassen Sie mich nur eine Funktion vorschlagen:
Mit freundlicher Genehmigung von WikEmacs
quelle
Ich fand
helm-for-files
Werke besser als jede der obigen Antworten, um den Dateinamen automatisch zu vervollständigen und eine schöne Suchoberfläche zu haben. Sie können es auch so konfigurieren, dass es beliebige Suchelemente enthält.quelle