Zeigen Sie eine Liste der neuesten Dokumente in Vim an


130

Gibt es eine Möglichkeit, die Liste der zuletzt in Vim geöffneten Dokumente anzuzeigen? Mir ist klar, dass ich die Cursorsprungliste anzeigen :juund dann zu einer Cursorposition in der Liste gehen kann, aber dies ist nicht ideal, da die Liste mehrere Einträge desselben Dokuments enthält. Gibt es einen anderen Befehl, der das tun würde, wonach ich suche?

Antworten:


200

Verwenden Sie kein Plugin, es sei denn, Sie möchten ein schönes Menü. Aus der Vim-Dokumentation: Starten (oder :help old):

:ol[dfiles]

Dann öffnen Sie eine der aufgeführten Dateien, Verwendung: '0, '1, '2, ...'9


Listen Sie die Dateien auf, in denen Markierungen gespeichert sind viminfo.

:bro[wse] ol[dfiles][!]

Listen Sie die Dateinamen wie mit auf :oldfilesund geben Sie eine Nummer ein. Wenn die Nummer gültig ist, wird diese Datei aus der Liste bearbeitet. Verwenden Sie !diese Option, um einen geänderten Puffer zu verlassen.


1
Vielen Dank für Ihre Antwort, aber wenn ich die Hilfe zum Starten dieses Befehls ansehe, existiert sie nicht wie in dem von Ihnen angegebenen Link. Auch der Versuch, diesen Befehl zu verwenden, führt zu dem Fehler "Kein Editorbefehl". Warum ist das?
Chris

1
Funktioniert bei mir. @chris Du weißt, dass die Bits in den Klammern optional sind, oder? dh ": bro ol" ist eine Abkürzung für ": browse oldfiles"
Mr_Chimp

28
Verwenden Sie zum Öffnen einer der aufgelisteten Dateien: '0,' 1, '2, ...' 9. (Ich musste zu einer anderen Frage gehen, um diese Antwort zu finden, also poste ich sie hier.)
Stew

3
@Stew Link zu dieser Frage? Die scheinen für mich nicht zu funktionieren. [UPDATE] eigentlich funktioniert es bei mir mit :browse oldfiles- sorry!
Aaron Gibralter

7
Sie müssen nicht bis zum Ende der alten Dateiliste scrollen, um eine aufgelistete Datei zu öffnen. Sie können sich die Nummer merken und dann zum Beenden q drücken. Drücken Sie dann im normalen Modus '0,' 1, '2, ..., um die Datei zu öffnen. Ich finde oft, dass das Drücken von q schneller ist als das Scrollen nach unten.
James Lawson

28

Das zuletzt verwendete Plugin (MRU) bietet einen einfachen Zugriff auf eine Liste der zuletzt geöffneten / bearbeiteten Dateien in Vim. Dieses Plugin speichert die Dateinamen automatisch, wenn Sie sie in Vim öffnen / bearbeiten.

http://www.vim.org/scripts/script.php?script_id=521


2
Das funktioniert gut. Ich denke, ich bin überrascht zu erfahren, dass ein Plugin notwendig ist.
Chris

2
Das Schöne an MRU und nicht an dem integrierten Befehl ist, dass es das Filtern nach Dateinamen und das Vervollständigen von Registerkarten ermöglicht, anstatt sich jedes Mal mit einer klobigen Riesenliste zu befassen.
Ben



2

vim plugin: minibufexpl kann dir helfen. Die Liste der geöffneten Dateien wird oben oder unten auf dem Bildschirm angezeigt:

Geben Sie hier die Bildbeschreibung ein

Geben Sie im normalen vim-Modus Folgendes ein: b $ {bufid} , um zum $ {bufid} _ -ten Puffer zu springen. Beispiel : Geben Sie Folgendes ein: b13 , um zum 13. Puffer zu springen , d. h. ngx_mail_ssl_module.c.

Nebenbei können Sie einige praktische Bindungen in Ihrem vimrc zuordnen, wie zum Beispiel:

" ------------------------------- minibufexpl mappings -----------------------------------
"let g:miniBufExplSplitBelow=1
nnoremap <silent> <leader>bn :bn<cr>
nnoremap <silent> <leader>bp :bp<cr>
nnoremap <silent> <leader>bf :bf<cr>
nnoremap <silent> <leader>bl :bl<cr>
nnoremap <silent> <leader>bt :TMiniBufExplorer<cr>

Das Plugin erhalten Sie hier: https://github.com/fholgado/minibufexpl.vim



2

Ein gutes Plugin ist https://github.com/Shougo/denite.nvim

Sie können anrufen :Denite file_old, um eine Fuzzy-Suche in der Liste der alten Dateien durchzuführen. Insbesondere wird durch einfaches Drücken Enterdie zuletzt geöffnete Datei erneut geöffnet. Das Zuweisen einer Verknüpfung ist nützlich:

nnoremap <leader>o :Denite<space>file_old<CR>

Das spart wenige Tastendrücken im Vergleich zu :browse oldfiles, q, 1,Enter


0

Der einfachste Weg für mich, auf aktuelle Dateien zuzugreifen, besteht darin, der .gvimrc-Datei Folgendes hinzuzufügen:

let g:netrw_sort_by           = 'time'

let g:netrw_sort_direction    = 'r'

Diese Zeilen werden netrw, um Dateien nach den zuletzt geänderten zu sortieren. Dann ruft man einfach an: e. und wählt die gewünschte Datei aus.

Diese Lösung setzt voraus, dass Dateien in einem Hauptverzeichnis gespeichert werden, das in .gvimrc angegeben ist. Z.B

cd ~/vim
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.