Wie kann man versehentliches "Markieren" in Vim rückgängig machen (statt springen)?

709
Vi.

Ich drückte mestatt 'eund die Marke "e" wurde mit der aktuellen Position überschrieben, anstatt zu ihr zu springen. Wie mache ich es rückgängig?

6

2 Antworten auf die Frage

2
embedded.kyle

:delmarks elöscht eine bestimmte Marke. Es kann abgekürzt werden:delm e

Aus dem Wiki :

Command Description :delmarks a delete mark a :delmarks a-d delete marks a, b, c, d :delmarks abxy delete marks a, b, x, y :delmarks aA delete marks a, A :delmarks! delete all lowercase marks for the current buffer (a-z) 

Um Ihren Kommentar anzusprechen:

Um einen Verlauf Ihrer Marken zu speichern, müssen Sie eine Viminfo- Datei mit schreiben :wv[iminfo][!] [file].

In der Viminfo-Datei werden Folgendes gespeichert:
- Der Befehlszeilenverlauf.
- Der Suchstringverlauf.
- Die Eingabezeilenhistorie.
- Inhalt von nicht leeren Registern.
- Markiert für mehrere Dateien.
- Dateimarkierungen, die auf Positionen in Dateien verweisen.
- Letztes Such- / Ersatzmuster (für 'n' und '&').
- Die Pufferliste.
- Globale Variablen.

Dies kann mit gelesen werden :rv[iminfo][!] [file].

Die Verwendung einer viminfoDatei zum Speichern Ihrer Markierungen hat jedoch einen großen Nachteil . Es werden nur Großbuchstaben oder numerische Marken gespeichert. Keine Kleinbuchstaben.

Kleinbuchstaben "a bis" z bleiben in der Erinnerung, solange die Datei in der Pufferliste bleibt. Wenn Sie die Datei aus der Pufferliste entfernen, gehen alle Markierungen verloren. Wenn Sie eine Zeile löschen, die eine Marke enthält, wird diese Marke gelöscht.

Ich möchte nur die Marke in ihre vorherige Position zurückversetzen und zu ihr springen. Es ist, als würde man versehentlich "Schnell speichern" anstelle von "Schnell laden" verwenden und die überschriebene Sicherungsdatei wiederherstellen wollen. Wenn es in Vim nicht möglich ist, wie kann man es im Voraus vorbereiten (dh, dass Vim für jeden Markierungsschlitz etwas Historisches speichert). Vi. vor 10 Jahren 0
1
Heptite

Sobald Sie eine Marke mit einem neuen Ort "überschrieben" haben, kann sie nicht mehr rückgängig gemacht werden. Das Beste, was Sie tun können, ist möglicherweise drücken ctrl- obis Sie den Cursor an der alten Position ist und wieder die Marke erstellen.

Wie kann Vim etwas Geschichte [für jeden Markenslot] speichern, um dies rückgängig machen zu können? Ich möchte nicht jedes Mal aufhören und nachdenken, wenn ich Markierungen oder Sprünge speichern. Vi. vor 10 Jahren 0
Ich versuche Ihnen zu sagen, dass Vim das nicht tut und keinen Mechanismus dafür bietet. Sie könnten möglicherweise sehen, ob jemand versucht hat, ein Vim-Skript / Plugin zu erstellen, aber ich habe keines mit einer flüchtigen Google-Suche gefunden. Heptite vor 10 Jahren 0