如何使用VIM在XML文件中复制整个条目?
我在XML文件中包含以下内容:如何使用VIM在XML文件中复制整个条目?,xml,vim,Xml,Vim,我在XML文件中包含以下内容: <TypeDef name="a"> <ArrayType high="14" low="0"> <UndefType type="node"> </UndefType> </ArrayType> </TypeDef> 我想复制这个条目。通常,我会转到第一行,使用V进入行视觉模式,转到最后一行,猛拉并粘贴 我如何复制整个条目而不自己查找条目的结尾?我今天学到的解决
<TypeDef name="a">
<ArrayType high="14" low="0">
<UndefType type="node">
</UndefType>
</ArrayType>
</TypeDef>
我想复制这个条目。通常,我会转到第一行,使用V
进入行视觉模式,转到最后一行,猛拉并粘贴
我如何复制整个条目而不自己查找条目的结尾?我今天学到的解决方案(感谢谁回答了问题)是使用VIM的动作 将光标放在要复制的条目中,并在命令模式下键入以下内容:
yat
:
根据以下动作猛拉y
选择当前标记at
还要注意的是,这不会拉扯整条线。仅从开始标记的开始大括号到结束标记的结束大括号。如果不小心,这可能会导致对齐问题 解决这个问题的一种方法是粘贴
:put
,而不是像这样粘贴p
,yat:put
请注意,这不会保留缩进,因为XML条目并没有作为一整行被拖动 另一种方法是:
vatVy
:
进入可视模式v
如上所述at
切换到线路视觉模式并选择整条线路V
拖动所选内容y
V%y
matchit当然对于一般的导航目的非常有用 令人印象深刻的方法!我试图定义一个新的vim函数,但文本对象似乎足够强大。你可以直接使用V。。。对于第二个例子来说,Vaty就足够了是的,但是做“at”会使我的视觉效果出格,无论如何我必须再次按V。我想我最好跳过第一个班次,只需按v'at'就可以让你在视觉上看不到线,因为“标签”不一定要跨越整条线,所以只有匹配的部分才会在视觉上被标记。除了切换回线条视觉模式,您还可以使用:putThanks按线条粘贴。我不知道:放。我将把它添加到答案中。