I know
di<
will delete in an HTML tag itself.
Is there an easy way to delete text in between two tags?
<span>How can I delete this text?</span>
Thanks!
dit
will delete the text between matching XML tags. (it
is for "inner tag block".)
See :h it
and :h tag-blocks
.
cit
ci"
Two of the best productivity enabler commands of vim.
I save a lot of time and effort with just those two.
try dt< while the cursor is on the first character to delete. In your example the 'H'.
(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
If you're aiming to do the inverse of deleting text between flags, I suggest installing Vim-Surround and running dst
which deletes the surround tag
to a