如何将包含多个搜索和替换的宏保存到我的.vimrc中

时间:2010-06-16 15:27:10

标签: vim macros replace multiline

我有一个宏用于替换其html实体的特殊字符。我想将它保存在我的.vimrc中。

根据this,我应该使用let @ r =' macro_text_goes_here '。问题是我的宏是一系列搜索和替换,如下所示:

:%s:á:\á:Ige
:%s:é:\é:Ige
:%s:í:\í:Ige

所以,我尝试过使用^ V-enter,< enter>,< CR>使用真正的换行符,但它永远不会奏效。另一方面,如果我将文本放在寄存器上然后运行宏,它将按预期工作。

2 个答案:

答案 0 :(得分:10)

将此添加到.vimrc适用于我

let @a=':%s/á/\á/g^M:%s/é/\é/g^M:%s/í/\í/g^M'

请注意,^ M是使用 Ctrl + V Ctrl + M 输入的特殊字符。< / p>

答案 1 :(得分:1)

好的我找到了解决方案,之前我曾尝试使用 ^ M ,但是有一些尾随空格它不起作用,问题示例的正确语法是:

let @r=':%s:á:\&aacute;:Ige^M:%s:é:\&eacute;:Ige^M:%s:í:\&iacute;:Ige^M'

不要忘记最后的^ M,并且需要重新启动vim才能重新加载.vimrc。