当前位置:  开发笔记 > 编程语言 > 正文

跳转到Vim中匹配的XML标记

如何解决《跳转到Vim中匹配的XML标记》经验,为你挑选了4个好方法。

Vim %操作符跳转到匹配的括号,注释结束和其他一些东西.但是,它并不符合XML标记(或任何其他标记,据我所知).

使用Vim跳转到匹配的XML标记的最佳方法是什么?

注意:真正想要做的是复制XML文件中的一个部分,而无需手动查找匹配的标记.



1> Robert Lujo..:

您无需额外插件即可完成此操作:

将光标放在标签上

vat - 将选择(外部)标记并将光标放在末尾

一旦你有了你的选择,你可以在顶部和底部之间切换o(根据Michael Gruber的说明进行更新)

c- 改变或,y- 复制或逃离视觉模式......

另一个有用的操作是:vit- 将选择标签的内容(内部).

更新(感谢@elrado)示例:vito将允许您选择标记的内部内容并将光标定位在所选文本的开头.

参考:https://superuser.com/questions/182355/how-can-i-select-an-html-tags-content-in-vim

Vim参考(感谢@Geek注意到这一点):

:help visual-operators

你会得到:

4. Operating on the Visual area             *visual-operators*

The objects that can be used are:
    ...
    at  a   block (with tags)        |v_at|
    it  inner   block            |v_it|
    ...


需要注意的是:一旦你完成了选择,就可以用'o'在顶部和底部之间切换
@Geek,'t'代表'tag'.要理解'a',你必须首先理解'我'.`cit`改变了标签的**i**nterior - 只是内容.`cat`改变**标签的**** - 内容和******标签本身,开启和关闭.
很好,有一个内置的方式,虽然是一个令人费解的方式,跳转到结束标签.通过视觉模式绕道而行是到达那里的唯一方法吗?
神圣的莫莉,你总是用Vim学习新东西!有很多值得学习的东西,这对我帮助很大,谢谢!

2> sykora..:

有一个名为matchit.vim的vim插件.你可以在这里找到它:http://www.vim.org/scripts/script.php?script_id = 39.它的创建几乎就是您描述的确切目的.

安装它,将光标放在标签的主体上(不是<>,否则它将匹配那些)并按%跳转到另一个标签.请参阅脚本页面以了解其匹配的内容.


有一些版本的matchit,它已经与Vim一起出货.`runtime macros/matchit.vim`应该启用它,并允许`%`匹配XML标记.
好一个.一直坐在我的硬盘上.

3> Codie CodeMo..:

OP表示他真正想做的是复制XML的一部分,而不必找到匹配的标签.这在普通模式下很容易完成yatp,它会将文本拉入内部并包含匹配的标签,然后粘贴它. yitp几乎相同,但它不包括外部标签.

字符串中的"y"当然是普通模式"yank"命令.(:help y)

a或者i可以在诸如y视觉选择之类的操作符之后用于对象选择.符号后面ai指定应选择的内容.t此处使用的对象类型表示SGML标记.(:help object-select).

当然只是意味着通过您选择的方式移动到某处p并将拉出的文本放在该位置.



4> transang..:

只是我使用"yank","object-select"(标签选择)和"跳到最后一个被拉动的文本"的技巧.

yit`] 

在关闭标签之前跳到右边

yit

打开标签后跳到右边

注意:这将改变默认寄存器的内容

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有