You can do this without additional plugins:
Another useful operation is: vit - will select content of the tag (inner).
Update (thanks to @elrado) Example: vito will enable you to select inner content of the tag and position cursor on the beginning of the selected text.
Reference: https://superuser.com/questions/182355/how-can-i-select-an-html-tags-content-in-vim
Vim reference (thanks to @Geek for noting this out):
:help visual-operators
you'll get:
4. Operating on the Visual area *visual-operators*
The objects that can be used are:
...
at a <tag> </tag> block (with tags) |v_at|
it inner <tag> </tag> block |v_it|
...
There is a vim plugin called matchit.vim . You can find it here: http://www.vim.org/scripts/script.php?script_id=39 . It was created pretty much the exact purpose you describe.
Install that, place your cursor on the body of the tag (not the <>, else it'll match those) and press % to jump to the other tag. See the script's page to find out what else it matches.
The OP stated that what he really wanted to do is copy a section of XML without having to find the matching tag. This is easily done in normal mode with yat<motion>p
, which yanks the text inside and including the matching tags, then pastes it. yit<motion>p
is almost the same, but it doesn't include the outer tags.
The 'y' in the string is of course the normal mode "yank" command. (:help y
)
a
or i
can be used for object selection after an operator such as y
or inside a visual selection. The symbol after a
or i
specifies what should be selected. The object type t
used here indicates an SGML tag. (:help object-select
).
Of course <motion>
just means to move somewhere by the means of your choice and p
puts the yanked text at that location.
Just my trick of using "yank", "object-select" (tag select) and "jump to last yanked text".
yit`]
to jump to right before closing tag
and
yit
to jump to right after opening tag
Note: this will change the content of default register
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With