如何用<code> tag in vim, such that I can repeat the operation with a dot operator?</code>包围两个单词

时间:2011-04-26 17:33:15

标签: vim surround

我正在使用vim-surround插件和这个HTML(其中*是我的光标):

<li class="sample" style="border-color: #005462;">*#005462</li>

我想用<code>围绕#005462,所以看起来像<code>#005462</code>。我可以用可视模式做到这一点,但我想做一些我可以用点运算符重复的事情。有什么建议吗?

4 个答案:

答案 0 :(得分:9)

您希望repeat.vim为其他几个插件添加.支持,包括环绕声。

答案 1 :(得分:6)

从正常模式尝试录制宏。然后:

qai<code><esc>ea</code><esc>q
  1. 此命令说开始录制(q)。
  2. 开始插入模式(i)。
  3. 输入&lt; code&gt;。
  4. 返回正常模式(&lt; esc&gt;)。
  5. 移到单词(e)的末尾。
  6. 然后再次进入插入模式(a)。
  7. 输入&lt; / code&gt;。
  8. 返回正常模式(&lt; esc&gt;)。
  9. 然后停止录制(q)。
  10. 您可以使用@a或@@重复此命令以重复上次使用的命令。 当你调用a时不要忘记在rigth位置定位,否则你将无法获得预期的结果。

答案 2 :(得分:1)

其他一些人在使用surround.vim重复问题时遇到了问题:

在第一个链接中,来自surround.vim文档的引用暗示视觉模式周围不起作用:

  

“。”命令适用于ds,cs,   如果您安装repeat.vim

,则为yss

考虑到围绕它的文本元素,我认为没有办法在不使用可视模式的情况下围绕#005462。

对于这个特殊问题,我认为快速,可重复的搜索和替换是您最好的选择。

:s/: \(#......\);/: <code>\1<\/code>;/g

转到右侧,在命令行模式下键入或粘贴它,然后按Enter键。

移至下一行并按&重复此操作。

如果您知道要在文件中替换所有这些文件,可以在%命令之前添加s/,如下所示:

:%s/: \(#......\);/: <code>\1<\/code>;/g

希望这有帮助!

答案 3 :(得分:0)

查看有关将haml转换为erb的this Vimcasts.org集。您可以使用相同的技术来完成任务。