Skip to content Skip to sidebar Skip to footer

Delete Text In Between Html Tags In Vim?

I know di< will delete in an HTML tag itself. Is there an easy way to delete text in between two tags? How can I delete this text? Thanks!

Solution 1:

dit will delete the text between matching XML tags. (it is for "inner tag block".)

See :h it and :h tag-blocks.

Solution 2:

cit
ci"

Two of the best productivity enabler commands of vim.

I save a lot of time and effort with just those two.

Solution 3:

try dt< while the cursor is on the first character to delete. In your example the 'H'.

Solution 4:

dit - delete inner tag, remains in command mode cit - change inner tag, changes to edit mode

di" - delete inside "" di' - delete inside ''

di( - delete inside () di) - delete inside ()

di[ - delete inside [] di] - delete inside []

di{ -delete inside {} di} - delete inside {}

di< - delete inside <> di> - etc

swap first letter d for c, if you want to be in edit mode after typing the command

Solution 5:

(cursor on first character to delete) v/<[enter]d

This solution starts on the first character, then enters visual mode ("v"). It then searches for the next start bracket ("/<"), and then press enter to exit the search.

At this point, your visual selection will cover the text to delete. press d ("d") to delete it.

If I had to do this for a bunch of tags, I'd record the command and combine it with some other searches to make it repeatable. The key sequence might look like this:

[cursor on start of file] qa/>[enter]lv/<[enter]dnq

then press:

20@a

to do this for 20 tags

Post a Comment for "Delete Text In Between Html Tags In Vim?"