如何用环绕.vim 单独环绕多行

Posted

技术标签:

【中文标题】如何用环绕.vim 单独环绕多行【英文标题】:How to surround multiple lines individually with surround.vim 【发布时间】:2012-02-21 18:46:38 【问题描述】:

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

香蕉 柑橘 橙色

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

有没有办法在没有宏的情况下更快地做到这一点?

【问题讨论】:

【参考方案1】:
    <S-v>直观地选择所有行 输入:norm yss<li> 然后<CR>

结果:

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

范围也很好::.,+2norm yss&lt;li&gt;&lt;CR&gt;:1,3norm yss&lt;li&gt;&lt;CR&gt; 也是如此。

【讨论】:

【参考方案2】:

使用视觉块,然后环绕。

&lt;c-v&gt; 启动可视块模式,然后移动到文本的最后一行。使用$ 选择到每一行的末尾,然后使用S&lt;li&gt;

大家一起:

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

【讨论】:

我比我更喜欢这个。 我也是 ;) 更有效率。【参考方案3】:

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

ul > li*

您会得到这份清单。它看起来很神奇,而且速度也很快。

【讨论】:

正是我需要的!我很确定 zencoding 也可以,但也不知道怎么做。谢谢! 非常欢迎。如果它解决了您的问题,请接受它;) 我接受了另一个答案,因为它与我的问题的标题更相关,但我可能会在编码时更频繁地使用你的答案 ;-)【参考方案4】:

不是最有效的方法,但对新手很有帮助,您可以使用 Visual Block 两次在单词的开头和结尾添加标签。

    &lt;c-v&gt; 开始可视块,然后使用I 插入第一个&lt;li&gt;,以[esc] 结束。 &lt;c-v&gt; 启动可视块,然后使用$ 选择到块的末尾。使用A,然后附加&lt;li&gt;,以[esc]结尾。

一起:&lt;c-v&gt;2jI&lt;li&gt;[esc]&lt;c-v&gt;2j$A&lt;li&gt;[esc]

【讨论】:

以上是关于如何用环绕.vim 单独环绕多行的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Vim 中的单个命令调用中从光标位置开始并环绕文件末尾进行全局搜索和替换?

Bootstrap 4 文本环绕另一列/图像

android中如何让文字环绕图片

如何用word使图片上下居中

Next.js 示例 Auth - 基于 auth 的重新路由,环绕其他功能

你如何让 UIPickerView 组件环绕?