Ich habe häufig mehrere Puffer in meiner Vim-Sitzung geöffnet. Das bedeutet, dass mein Jumplist Standorte aus mehreren Puffern speichert. Wenn ich jedoch Ctrl-o verwende, um zu einer vorherigen Position zu springen, möchte ich den Puffer nicht verlassen und möchte zu vorherigen Speicherorten "lokal" in den aktuellen Puffer springen. Wie mache ich das?
Beispiel: Wenn mein Jumplist folgendermaßen aussieht:
%Vor%Ich möchte beim ersten Drücken von Strg-o in Zeile 15 der Datei aaa.m springen. Wichtig ist, dass ich beim nächsten Drücken von Strg-o nicht zur Datei xxx.m springen möchte. Ich möchte lieber in Zeile 20 der Datei aaa.m springen; das heißt, meine vorherige Position innerhalb des "aktuellen" Puffers. Das Standardverhalten von Vim besteht darin, mich zu Zeile 12 der Datei xxx.m zu bringen. Irgendwelche Ideen, wie ich das erreichen kann?
Probieren Sie die folgende Sprunglisten-Traversierungsfunktion aus. Es schreitet sukzessive ab
eine Sprunglistenposition zu einer anderen (mit Strg + O oder
Strg + I abhängig davon, welche Werte sein back
und forw
Argumente haben) und stoppt, wenn der aktuelle Ort im selben Puffer wie ist
Der Puffer, von dem er gestartet wurde. Wenn es nicht möglich ist, eine Sprungliste zu finden
Position in Bezug auf den Puffer, kehrt die Funktion zu der Position zurück, die
Jump-Liste hat vor dem Start.
Um diese Funktion zu verwenden a Strg + O Strg > I -Replacement gesperrt Erstellen Sie im aktuellen Puffer wie unten gezeigt Zuordnungen.
%Vor%Vielleicht hilft das EnhancedJumps-Plugin .
Wenn dieses Plugin installiert ist, wird der Sprung zu einem anderen Puffer nur ausgeführt, wenn der gleiche Sprungbefehl unmittelbar danach erneut ausgeführt wird.