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

如何将包含多个搜索和替换的宏保存到my.vimrc中,vim,macros,replace,multiline,Vim,Macros,Replace,Multiline,我有一个宏,用于替换其html实体的特殊字符。我想把它保存在我的.vimrc中 根据,我应该使用let@r='macro\u text\u goes\u here'。问题是我的宏是一系列搜索和替换,类似于: :%s:á:\á:Ige :%s:é:\é:Ige :%s:í:\í:Ige 所以,我尝试使用^V-enter,使用真正的换行符,但它从来都不起作用。另一方面,如果我将文本放在寄存器上,然后运行宏,它会按预期工作。将其添加到

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

根据,我应该使用let@r='macro\u text\u goes\u here'。问题是我的宏是一系列搜索和替换,类似于:

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

所以,我尝试使用^V-enter,使用真正的换行符,但它从来都不起作用。另一方面,如果我将文本放在寄存器上,然后运行宏,它会按预期工作。

将其添加到.vimrc中对我有效

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

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

好的,我找到了解决方案,我以前尝试过使用^M,但有一些尾随空格无效,问题示例的正确语法为:

let @r=':%s:á:\á:Ige^M:%s:é:\é:Ige^M:%s:í:\í:Ige^M'

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

你说得对,我在^M之间有空格,这就是为什么我失败的原因。如果你不想在vimrc中包含二进制数据,可以在它们内部使用双引号和
\
。@smi+1非常感谢你的Ctrl+V。它帮了我很多忙^^