tags:

views:

884

answers:

4

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!

A: 

This question seems similar, but is for parentheses. The answer says that the command is set to parentheses by default Maybe it can be modified for html tags.

Bobwise
+2  A: 

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

JD
Also very useful for other situations, thanks! (thought I think it should be "dt<")
CMB
+20  A: 

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

See :h it and :h tag-blocks.

Brian Carper
Awesome! Thanks!
CMB
And, of course, `cit` when you want to write immediately afterwards.
Debilski
A: 

(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

brad