Antworten:
dit
löscht den Text zwischen übereinstimmenden XML-Tags. ( it
steht für "inner tag tag block".)
Siehe :h it
und :h tag-blocks
.
vat
(oder vit
), gefolgt von wiederholtem at
(oder it
), um die umgebenden Tags schrittweise auszuwählen. (Oder v2at
usw.). Dann d
löschen (etc).
cit
ci"
Zwei der besten Produktivitätsaktivierungsbefehle von vim.
Ich spare viel Zeit und Mühe mit nur diesen beiden.
cit
wird in diesem Thread behandelt, aber für die Nachwelt ci"
wird bis zum nächsten "
gefunden gelöscht . Hervorragend geeignet zum Ändern von Klassennamen in HTML-Tags, z. B. <span id="really long annoying-id">
- mit dem Cursor zuerst "
drücken ci"
und neue Zeichen zwischen den Anführungszeichen einfügen.
ciw
ist auch nützlich, da es das aktuelle Wort löscht; Ich benutze es mehr als cit
und ci"
tatsächlich.
ci"
Löscht den Text links bis zum nächsten Zitat und rechts bis zum nächsten Zitat und wechselt dann in den Einfügemodus. ct"
ist eigentlich der Befehl zum "Löschen bis zum nächsten" gefunden ". Aber ja, es verhält sich genauso, wenn sich der Cursor unter dem linken Anführungszeichen befindet.
Versuchen Sie dt <, während sich der Cursor auf dem ersten zu löschenden Zeichen befindet. In Ihrem Beispiel das 'H'.
( Cursor auf das erste zu löschende Zeichen ) v / <[Enter] d
Diese Lösung beginnt mit dem ersten Zeichen und wechselt dann in den visuellen Modus ("v"). Anschließend wird nach der nächsten Startklammer ("/ <") gesucht und anschließend die Eingabetaste gedrückt, um die Suche zu beenden.
Zu diesem Zeitpunkt deckt Ihre visuelle Auswahl den zu löschenden Text ab. Drücken Sie d ("d"), um es zu löschen.
Wenn ich dies für eine Reihe von Tags tun müsste, würde ich den Befehl aufzeichnen und ihn mit einigen anderen Suchvorgängen kombinieren, um ihn wiederholbar zu machen. Die Tastenfolge könnte folgendermaßen aussehen:
[ Cursor beim Dateianfang ] qa /> [enter] lv / <[enter] dnq
dann drücken:
20 @ a
um dies für 20 Tags zu tun
c/<[enter]
in meinem "Vim-Leben" oft Befehle verwendet , aber jetzt bereue ich das ein bisschen. Sie sehen, die meisten "Vi-Modus" -Plugins für beliebte andere Editoren / IDEs unterstützen diesen speziellen Befehlstyp nicht. Sie unterstützen cit
, ci"
, ct<
und aber. Also unterrichte ich wieder.
Wenn Sie das Löschen von Text zwischen Flags umgekehrt durchführen möchten, empfehle ich, Vim-Surround zu installieren und auszuführen, dst
wodurch das Surround-Tag gelöscht wird
cit
wenn Sie gleich danach schreiben möchten.