
Ich versuche, in Vim einen Befehl zu schreiben, mit dem ich die Symbole 9 und 11 in der dritten Zeile löschen kann. Ich habe das getan, 3s/9, 11///
aber nichts passierte so, wie ich es erwartet hatte. Ich wäre dankbar, wenn ich das mit Ihren Vorschlägen tun könnte. Genauer gesagt: Ich möchte das 9. und das 11. Symbol in der dritten Zeile entfernen. Ich habe beispielsweise drei Zeilen
- drei Meter über dem Meer
- drei Meter unter dem Meeresspiegel
- brauche etwas Hilfe in vim
Daher möchte ich das 9. Symbol in der dritten Zeile löschen, nämlich den Buchstaben „e“ im Wort „some“, und das 11. Symbol, nämlich den Buchstaben „h“ im Wort „help“.
Antwort1
Das mehrfache Zuordnen wird im Abschnitt 27.4 Matching multiple times
von Kapitel 27 des Benutzerhandbuchs erläutert (siehe :help usr_27.txt
).
Der folgende Befehl löscht die ersten 9, 10 oder 11 Zeichen der Zeile 3, wenn die Zeile mindestens 9 Zeichen enthält. Wenn die Zeile weniger Zeichen enthält, wird zurückgegebenE486: Pattern not found:
:3s/.\{9,11}//
Ich bin nicht sicher, ob Sie das möchten. Wenn nicht, aktualisieren Sie bitte Ihre Frage.
Antwort2
Geben Sie im Bearbeitungsmodus Folgendes ein:
08lxl.
0
Cursor an den Zeilenanfang bewegen8l
Cursor 8 Zeichen vorwärts bewegenx
Zeichen unter dem Cursor löschenl
Cursor 1 Zeichen vorwärts bewegen.
letzten Befehl wiederholen (x)
Wenn Sie das an eine Taste binden möchten (z. B. ,
):
:map , 08lxl.
Jedes Mal, wenn Sie ,
danach im Bearbeitungsmodus drücken, werden diese Befehle ausgeführt.