我想在视觉上标记几行,然后用< p>围绕整个范围。和< / p>。在经过大量的摆弄之后,我提出了这个替代命令,它可以起作用:
:'<,'>s/^\(\_.*\)\%V/<p>\1<\/p>/
有没有更好的方法可以做到这一点,还是有人可以解释为什么会有效?
\_.
匹配包括行尾的每个字符。 ^
(行首)和\%V
(匹配视觉范围)接缝表现得很奇怪。例如,文档建议您使用两个\%V
来包围表达式,但这不是必要的接缝。不使用\%V
或在开始时只使用一个匹配整个缓冲区。删除^
会导致最后一行匹配并单独替换。最后的$
接缝也是不必要的。
答案 0 :(得分:5)
您可以在可视模式下使用surround.vim:
s<p
输入
E.g。 vat
(视觉选择'周围'标记),s<p
环绕<p>...</p>
故障:
p
编辑:没有环绕,你就可以
: 铜 '&LT; 我 输入的 {{ 1}} 强> ESC
: '&GT; 一 输入的
<p>
强> < KBD> ESC
或者更简单:
d 0 的
</p>
1 强> 的Cr “ ESC
请注意,在 1 我的XML filtetype插件(我认为是默认设置)会自动提供结束标记(<p>
),因此我们只需插入使用 Cr “取出内容---甚至不用插入模式!