Vim %操作符跳转到匹配的括号,注释结束和其他一些东西.但是,它并不符合XML标记(或任何其他标记,据我所知).
使用Vim跳转到匹配的XML标记的最佳方法是什么?
注意: 我真正想要做的是复制XML文件中的一个部分,而无需手动查找匹配的标记.
Rob*_*ujo 236
您无需额外插件即可完成此操作:
另一个有用的操作是:vit- 将选择标签的内容(内部).
更新(感谢@elrado)示例:vito将允许您选择标记的内部内容并将光标定位在所选文本的开头.
参考:https://superuser.com/questions/182355/how-can-i-select-an-html-tags-content-in-vim
Vim参考(感谢@Geek注意到这一点):
:help visual-operators
Run Code Online (Sandbox Code Playgroud)
你会得到:
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|
...
Run Code Online (Sandbox Code Playgroud)
syk*_*ora 72
有一个名为matchit.vim的vim插件.你可以在这里找到它:http://www.vim.org/scripts/script.php?script_id = 39.它的创建几乎就是您描述的确切目的.
安装它,将光标放在标签的主体上(不是<>,否则它将匹配那些)并按%跳转到另一个标签.请参阅脚本页面以了解其匹配的内容.
Cod*_*key 36
OP表示他真正想做的是复制XML的一部分,而不必找到匹配的标签.这在普通模式下很容易完成yat<motion>p,它会将文本拉入内部并包含匹配的标签,然后粘贴它. yit<motion>p几乎相同,但它不包括外部标签.
字符串中的"y"当然是普通模式"yank"命令.(:help y)
a或者i可以在诸如y视觉选择之类的操作符之后用于对象选择.符号后面a或i指定应选择的内容.t此处使用的对象类型表示SGML标记.(:help object-select).
当然<motion>只是意味着通过您选择的方式移动到某处p并将拉出的文本放在该位置.
只是我使用"yank","object-select"(标签选择)和"跳到最后一个被拉动的文本"的技巧.
yit`]
Run Code Online (Sandbox Code Playgroud)
在关闭标签之前跳到右边
和
yit
Run Code Online (Sandbox Code Playgroud)
打开标签后跳到右边
注意:这将改变默认寄存器的内容
| 归档时间: |
|
| 查看次数: |
32508 次 |
| 最近记录: |