我有以下XML文件:
<outer>
<middle>
<inner>1</inner>
</middle>
<middle>
<inner>2</inner>
</middle>
<middle>
<inner>3</inner>
</middle>
<middle>
<inner>4</inner>
</middle>
</outer>
我会在middle
选择整个2
vat
标记。
现在有办法扩展此选择以包含下一个middle
标记(3
)和一些组合键吗?
我只对标记这样做感兴趣,也就是说,如果有一个组合总是可以独立于下一个标记的结构使用。
答案 0 :(得分:0)
用installEventFilter()
选择第一个标记块后按vat
)这将包括下一个<c-v>j
(inner
)
修改:
对于您的新示例,您可以在3
之后按4$
以获取下面的标记块。
修改强>
我写了一个脚本vat
,它允许通过按 F4 扩展相同标记块 1 :
ExpandTagBlock
以下是 Demo :
<子> 1 相同标记块的扩展仅在此时向下完成。该脚本非常有资格进行改进或修改。 子>
答案 1 :(得分:0)
Meninx对vanilla vim的回答确实是正确的。以下假设您选择这些标签是因为您想要对它们进行操作。如果vim有文本对象的附加定义,你可能根本不需要选择它们。
如果您定期编辑XML(或HTML等),您可能需要查看Tim Pope的插件,为“括号,括号,引号,XML标记添加动作”,和更多。”这是基于vim的编辑风格基于“文本对象”的想法,即单词,句子,段落和标签。
例如在vanilla vim中,caw
将“改变单词”。使用下面提到的插件,您将能够执行cs'<q>
之类的操作,这会“使用标记<q>...</q>
更改周围的单引号”。
vim-surround 为“环境”添加了一般用途,这是我见过的所有vim dotfiles中最常用的插件之一:
您还可以查看 vim-ragtag ,它增加了对XML,HTML,PHP等标签的扩展支持,并增强了vim-surround。我自己不使用它,但它是一组映射到C-X
的快捷方式,即C-X-<CR>
将“foo”包装成:
<foo>
^
</foo>
另一个竞争者是machakann的vim-sandwich。在这里查看:
如果您没有vim插件管理器,我建议您使用junegunn's vim-plug。
vim-plug为set up后,安装前两个插件就像在.vimrc中添加以下行一样简单:
Plug 'tpope/vim-surround'
Plug 'tpope/vim-ragtag'