Manchmal benutze ich Markierungen leicht durch verschiedene Dateien navigieren mit mA
, mB
... und 'A
, 'B
...
Und manchmal (öfter als ich zugeben möchte) wegen Unaufmerksamkeit oder aus irgendeinem Grund verwende ich m[LETTER]
eine bereits vorhandene Marke, die ihren vorherigen Wert löscht, wenn ich nicht möchte. Die meiste Zeit, wenn ich das tue, habe ich die Datei, auf die ursprünglich die Marke zeigt, nicht geöffnet.
Ist es in diesem Fall, wenn ich sofort feststellte, dass ich einen Fehler gemacht habe, möglich, den vorherigen Wert meiner Marke zu erhalten, außer sich zu erinnern, wohin sie zeigte, zu diesem Ort zu navigieren und ihn erneut einzustellen?
Ich habe im Dokument keinen solchen Befehl gefunden. Wenn dieser nicht vorhanden ist, gibt es eine clevere Problemumgehung, die einige von Ihnen in dieser Situation verwenden?
ctrl-o
,ctrl-i
und:jumps
) mit Ihrem eigenen persönlichen Speicher :)Antworten:
Hier ist ein grundlegendes VimScript, das ungefähr das tut, was Sie wollen.
Wir überschreiben die
ma
Durchgangszuordnungenmz
, um den aktuellen Wert zu speichern,g:previous_marks
bevor wir das Original aufrufenm
, um die Markierung tatsächlich zu setzen. Wir definieren auch<Leader>ma
durch<Leader>mz
, um den Verlauf für diese Marke anzuzeigen.Möglicherweise möchten Sie die Informationen übersichtlicher speichern
g:previous_marks
und die Möglichkeit hinzufügen, eine Markierung schnell wiederherzustellen (anstatt nur die Positionen zu sehen). Dieses Beispiel zeigt jedoch, wie dies durchgeführt werden kann. Weitere Optimierungen bleiben als Übung übrig an den Leser ;-)quelle
Nicht genau das, was Sie wollen, aber vielleicht nützlicher: das Signatur- Plugin. Es zeigt die aktuellen Markierungen als Zeichen am Rinnenrand an und verfügt über einfache Verknüpfungen zum Bearbeiten. Es kann auch die Liste der Schilder in eine Standortliste für den schnellen Zugriff einfügen.
quelle
Da das eigentliche Problem die Navigation zwischen mehreren Dateien / Positionen zu sein scheint, würde ich diese einfache Lösung vorschlagen, die auf dem Unite- Plugin basiert :
Dieser Befehl (der
<leader>j
beispielsweise zugeordnet werden kann) zeigt die Sprungliste mit einer Vorschau an: Jedes Mal, wenn Sie mitj
/ durch die Liste navigierenk
, werden mehrere Zeilen um die Cursorposition in dieser Datei angezeigt.Alternative:
Die Standardmarken können so einfach überschrieben werden: Vielleicht passen benannte Lesezeichen besser zu Ihrem Anwendungsfall, z. B. mit dem Plugin simple_bookmarks .
quelle