Ist es möglich, dass Vim-Markierungen auf das Zeichen verweisen, auf das sie ursprünglich gesetzt sind, anstatt auf die ursprüngliche Zeilen-/Spaltenposition des Zeichens?

Ist es möglich, dass Vim-Markierungen auf das Zeichen verweisen, auf das sie ursprünglich gesetzt sind, anstatt auf die ursprüngliche Zeilen-/Spaltenposition des Zeichens?

Ist es möglich, Vim-Markierungen (z. B. mm) auf das Zeichen verweisen zu lassen, auf das sie ursprünglich gesetzt sind, anstatt auf die ursprüngliche Zeilen-/Spaltenposition des Zeichens?

Wenn ich beispielsweise im Beispielsatz unten mm auf den ersten Buchstaben des Wortes „politicians“ (Zeile 1, Spalte 72) tippe, dann das Wort „entries“ lösche und dann `m eingebe, kehrt mein Cursor zum ursprünglichenMauszeigerPosition (Zeile 1, Spalte 72), die jetzt die Position des Buchstabens 'a' im Wort "politicians" ist. Ich verstehe, dass dies das erwartete Verhalten von vim ist, aberIch möchte, dass `m mich stattdessen zum „p“ von Politikern zurückbringt, auch wenn sich die Zeilen-/Spaltenposition geändert hat.

Beispielsatz:

Die zehntägige Sperre erfolgte, nachdem anonyme Änderungen an Informationen zu Politikern und Unternehmen sowie zu Ereignissen wie der Ermordung Kennedys vorgenommen worden waren.

Ich finde mein gewünschtes Verhalten für meine Schreib-/Bearbeitungsart weitaus nützlicher (insbesondere wenn ich Vim über seinen ursprünglichen Zweck des Programmierens hinaus verwende). Viemu, ein Plug-in, das Word viele der Funktionen von Vim hinzufügt, behandelt Markierungen so, wie ich es wünsche. Leider ist Viemu keine perfekte Portierung von Vim und ich würde es vorziehen, alle Texte (E-Mails, Aufsätze usw. und nicht nur Code) in Vim zu verfassen. Nicht zu wissen, wie ich Vim dazu bringe, Markierungen auf meine gewünschte Weise zu behandeln, ist einer der Hauptgründe, warum ich es nicht ausschließlich verwende.

Vielen Dank im Voraus,

PS: Dies ist mein erster Beitrag auf einem Stackexchange/Superuser. Bitte verzeihen Sie mir also, wenn ich nicht das richtige Format/Protokoll zum Stellen einer Frage befolgt habe und korrigieren Sie mich bitte.

Antwort1

Während Markierungen für hinzugefügte/entfernte Zeilen angepasst werden, wird die Spaltenposition nicht angepasst; da haben Sie Recht. Ihr gewünschtes Verhalten hat sicherlich mehrere Vorteile; ich vermute, es wurde nur noch nicht implementiert, wahrscheinlich aufgrund der damit verbundenen Komplexität. (Und es würde die Kompatibilität mit vi und früheren Vim-Versionen beeinträchtigen, was nicht auf die leichte Schulter genommen wird.)

Obwohl es möglich ist, sich mit s in einige Bearbeitungsaktionen einzuklinken :autocmd, ist dies im Allgemeinen nicht möglich (z. B. Dinge wie „ :skann nicht abgefangen werden“). Daher wäre es schwierig, dieses Verhalten in Vimscript zu emulieren, und mir ist keine derartige Implementierung bekannt.

verwandte Informationen