VIM使用surround.vim将标记添加到多行

时间:2012-01-29 19:21:18

标签: vim plugins emmet surround

我想要用li(或任何其他)标签包围这三行(或更多行):

香蕉
柑橘
橙色

我可以这样做:qaysstli>jq然后2@a

有没有办法在没有宏的情况下更快地完成此操作?

4 个答案:

答案 0 :(得分:22)

  1. 使用<S-v>
  2. 直观地选择所有行
  3. 输入:norm yss<li>,然后输入<CR>
  4. 结果:

    <li>Bananas</li>
    <li>Citrus</li>
    <li>Orange</li>
    

    范围也很好::.,+2norm yss<li><CR>:1,3norm yss<li><CR>一样。

答案 1 :(得分:5)

使用Visual Block然后环绕。

<c-v>启动视觉块模式,然后移动到文本的最后一行。使用$选择每行的结尾,然后S<li>

所有在一起:

<c-v>2j$S<li>

答案 2 :(得分:4)

我可以使用zencoding-vim更快地思考它。使用该插件,您可以直观地选择文本,然后您可以键入 ctr + y ,然后键入:

ul > li*

你知道了吗?它看起来像魔术,它也非常快。

答案 3 :(得分:1)

不是最有效的方式,但发现它作为新手很有用,你可以使用Visual Block两次在单词的开头和结尾添加标签。

  1. <c-v>启动可视屏蔽块,然后使用I插入第一个<li>,以[esc]结尾。
  2. <c-v>启动可视块,然后使用$选择块的末尾。使用A,然后添加<li>,以[esc]结尾。
  3. 所有这些:<c-v>2jI<li>[esc]<c-v>2j$A<li>[esc]