我正在使用 vim-surround 插件处理以下 HTML 代码(其中 * 表示我的光标位置):
<li class="sample" style="border-color: #005462;">*#005462</li>
我想用 <code>
将 #005462 包围起来,使其看起来像这样:<code>#005462</code>
。 我可以通过可视模式完成此操作,但希望能够使用点操作符重复执行该操作。 有什么建议吗?
我正在使用 vim-surround 插件处理以下 HTML 代码(其中 * 表示我的光标位置):
<li class="sample" style="border-color: #005462;">*#005462</li>
我想用 <code>
将 #005462 包围起来,使其看起来像这样:<code>#005462</code>
。 我可以通过可视模式完成此操作,但希望能够使用点操作符重复执行该操作。 有什么建议吗?
.
支持,包括surround插件。从正常模式尝试录制宏。然后:
qai<code><esc>ea</code><esc>q
之后,您可以使用 @a 或 @@ 重复此命令以重复上次使用的命令。当调用 a 时,请确保您处于正确的位置,否则您将无法获得预期的结果。
有几个其他人遇到了使用surround.vim重复操作的问题:
在第一个链接中,引用了surround.vim文档中意味着可视模式环绕不起作用的一句话:
如果你安装了repeat.vim,则“. ”命令将与ds、cs和yss一起工作
考虑到周围的文本元素,我不认为有一种方法可以只环绕#005462而不使用可视模式。
因此,针对这个特定问题, 我认为快速且可重复的搜索和替换是您最好的选择。
:s/: \(#......\);/: <code>\1<\/code>;/g
转到正确的行,进入命令行模式并键入或粘贴此内容,然后按Enter键。
移动到下一行,按&
重复上一条命令。
如果您知道想要在文件中替换所有内容,则可以在s/
命令前添加%
,如下所示:
:%s/: \(#......\);/: <code>\1<\/code>;/g
希望这能帮到你!