ich weiß
di<
wird in einem HTML-Tag selbst gelöscht.
Gibt es eine einfache Möglichkeit, Text zwischen zwei Tags zu löschen?
<span>How can I delete this text?</span>
Vielen Dank!
dit
löscht den Text zwischen übereinstimmenden XML-Tags. ( it
steht für "inner tag tag block".)
Siehe :h it
und :h tag-blocks
.
cit
wenn Sie gleich danach schreiben möchten.vat
(odervit
), gefolgt von wiederholtemat
(oderit
), um die umgebenden Tags schrittweise auszuwählen. (Oderv2at
usw.). Dannd
löschen (etc).Zwei der besten Produktivitätsaktivierungsbefehle von vim.
Ich spare viel Zeit und Mühe mit nur diesen beiden.
quelle
cit
wird in diesem Thread behandelt, aber für die Nachweltci"
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ückenci"
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 alscit
undci"
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'.
quelle
( 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
quelle
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ützencit
,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 wirdquelle