Ich möchte zu der Datei gehen, die ich soeben bearbeitet habe, wie es MRU-Plugins tun.
:bnext
und :bprev
funktioniert manchmal, aber meistens lande ich einfach in einer undurchsichtigen Datei, an deren Bearbeitung ich mich nicht mehr erinnere, und bin gezwungen, auf das MRU-Plugin zurückzugreifen.
Gibt es eine Möglichkeit, das Problem zu beheben?
Ctrl-^
wechselt zwischen zwei letzten Dateien. Wie kann man am besten zwischen mehreren navigieren?
Ich verstehe, dass es schwierig sein könnte, aber ich stimme allem zu, was das aktuelle :bn
:bp
Verhalten verbessern kann . Die Puffer, die ich oft sehe, sind völlig fehl am Platz. Vielleicht gibt es ein Plugin, das die neuesten Dateien verfolgt und Hooks bereitstellt, damit ich Zuordnungen erstellen kann?
Das Antworten auf Kommentare hat meine Gedanken ein wenig geklärt. Ich glaube, ich möchte in der Lage sein, Dateien in der Reihenfolge der letzten Speicherungen zu durchsuchen. Auf diese Weise ändert sich die Reihenfolge, wenn ich in den Verlauf zurück gehe, erst, wenn ich die zuletzt gespeicherte Datei speichere und einen Schritt "zurück" zu der Datei mache, die direkt davor gespeichert wurde, dh zu der Datei, von der ich gestartet habe.
So etwas wie ein Ctrl-O
Ctrl-I
Paar, das Dateien sofort wechselt, ohne den aktuellen Puffer zu durchlaufen. Art wie u
und U
in netrw:
u Change to recently-visited directory |netrw-u|
U Change to subsequently-visited directory |netrw-U|
Ctrl-O
(oder manchmalCtrl-T
), bis ich dort ankomme.Ctrl-O
undCtrl-I
. Aber es springt zwischen Bearbeitungspunkten und das unterbricht den Fluss. Alles, was ich zwischen den Puffern hin und her gehen möchte, in der Reihenfolge des Zugriffs. Wie zeigen Plugins eine Liste der neuesten Dateien an? Verfolgen sie sie intern?Ctrl-^
wechselt zwischen zwei letzten Dateien. Aber wie kann man am besten zwischen mehr navigieren?Ctrl-O/I
sind fensterspezifisch fwiw, während MRU normalerweise global ist. Wenn Sie die Reihenfolge nach dem letzten Zugriff wünschen, ändert sich die Reihenfolge der Liste, sobald Sie einmal zurückspringen, was die Sache noch komplizierter macht.Antworten:
Ich habe eine kleine Funktion geschrieben, um für mich immer wieder STRG-O zu drücken, bis sich der Puffer ändert.
Sie können es finden sich hier . Ich habe es CTRL-U zugeordnet, aber Sie können CTRL-O überschreiben, wenn Sie möchten.
Sie könnten wahrscheinlich etwas Ähnliches für schreiben
<C-I>
.Probleme:
Verbunden:
:jumps
listet die historischen Orte auf, durch die STRG-O zurücktritt.quelle
:kwbd
Schließen einiger Puffer ist mir jedoch aufgefallen , dass Vim in der erwarteten umgekehrten Reihenfolge zu den vorherigen Puffern zurückkehrt. Möglicherweise hat Vim eine MRU-Liste, die es nicht mit uns teilt, oder es wählt basierend auf dem CTRL-O-Standortverlauf (:jumps
), auf welchen Puffer zurückgegriffen werden soll .autocmd InsertLeave * normal mZ
wird die zuletzt bearbeitete Datei in der globalen Marke Z gespeichert . Mit können Sie darauf zurückkommeng'Z
. // Ich habe,nmap <C-y> g'Z
aber ich neige immer noch dazu, Strg-U häufiger zu verwenden.Mit können Sie
:ls
alle Puffer anzeigen. Beispielsweise:Um zum Puffer zurückzukehren
ext.markdown
, verwenden Sie:e +Nbuf
, wobeiN
die Puffernummer aus der ersten Spalte ist. Zum Beispiel::e +2buf
.Sie können eine einfache Funktion für ein interaktiveres Erlebnis erstellen:
Nach der Verwendung von
:ChooseBuf
oder können<Leader>b
Sie einfach die Nummer des Puffers eingeben, den Sie bearbeiten möchten.Dies ist nicht ganz "zuletzt verwendet", da der Auftrag "zuletzt geöffnet" ist (dies ist wahrscheinlich auch der Grund, warum
:bnext
/:bprev
nicht wie erwartet funktioniert).quelle
<C-6>
ist das, was Sie brauchen, um zum vorherigen Puffer zurückzukehren, den Sie vor dem aktuellen geöffnet hatten. Es gibt auch:bprev
&,:bnext
die Sie für das gleiche verwenden könnten.quelle
<C-6>
ist nicht schlecht, aber ich kann das nicht verwenden, um zwei Puffer zurückzuspringen.bprev
undbnext
sind nicht in der Reihenfolge der Sprünge.<C-6>
, es ist<C-^>
. Während es bei vielen Terminalemulatoren keine Unterscheidung gibt, gibt es bei einigen (einschließlich dem, der mit OS X geliefert wird) eine. Für den letzteren Fall ist die Verwendung desShift
Schlüssels erforderlich (QWERTY-Layout vorausgesetzt).Sie können auch verwenden
:oldfiles
, um eine Liste der von Ihnen bearbeiteten Dateien abzurufen.Die Liste enthält mit Dateinamen verknüpfte Nummern. Wählen Sie eine Datei aus, notieren Sie sich die Nummer (z. B. 14) und öffnen Sie sie mit
:edit #<14
Sie können auch andere Befehle für diese Datei ausführen oder mehrere Dateien gleichzeitig an einen Befehl übergeben. Mehr dazu HIER
quelle
:bro[wse] ol[dfiles][!]