如何在Vim中用标记包围两个单词,以便可以使用点运算符重复该操作?

| 我正在使用vim-surround插件和以下HTML(其中*是我的光标):
<li class=\"sample\" style=\"border-color: #005462;\">*#005462</li>
我想在#005462周围加上surround1ѭ,看起来像是
<code>#005462</code>
。我可以在可视模式下执行此操作,但想做点重复的操作。有什么建议吗?     
已邀请:
您需要repeat.vim,它为其他几个插件(包括round)增加了ѭ3支持。     
从普通模式尝试记录宏。然后:
qai<code><esc>ea</code><esc>q
该命令说开始录制(q)。 启动插入模式(i)。 键入
。
返回正常模式()。
移至单词(e)的末尾。
然后再次进入插入模式(a)。
输入。
返回正常模式()。
然后停止录制(q)。


之后,您可以使用@a或@@重复此命令以重复上次使用的命令。
当您调用a时,请不要忘记将其定位在最重要的位置,否则您将无法获得预期的结果。
    										
其他一些人在用round.vim重复执行时遇到了问题: 在VIM中用“。”命令重复环绕 Vim Surround + Repeat,用^ M包裹我的文字 在第一个链接中,来自Surround.vim文档的引文暗示视觉模式周围的环境不起作用:   \“。\”命令可与ds,cs,   如果安装了repeat.vim,则为yss 考虑到周围的文字元素,我认为不使用可视模式就无法仅包围#005462。 因此,对于这个特定问题,我认为快速,可重复的搜索和替换是您最好的选择。
:s/: \\(#......\\);/: <code>\\1<\\/code>;/g
转到右行,然后在命令行模式下键入或粘贴,然后按Enter。 移至下一行并按
&
重复该操作。 如果知道要替换文件中的所有它们,则可以在
s/
命令之前添加
%
,如下所示:
:%s/: \\(#......\\);/: <code>\\1<\\/code>;/g
希望这可以帮助!     
观看有关将haml转换为erb的Vimcasts.org情节。您可以使用相同的技术来完成任务。     

要回复问题请先登录注册