vim宏将\n替换为'';

vim宏将\n替换为'';,vim,macros,Vim,Macros,我正在尝试保存一个宏,该宏将\n替换为, 输入: 978818 978818 900298 900272 输出: '978818','978818','900298','900272' 当我在vimrc中使用CTRL+R CTRL+R,B保存宏时,它如下所示: let @b = ":%s/\n/','/g^MI'^[A~@kb~@kb^[" 但现在,当我运行此宏时,它将输出为: 978818978818900298900272 和错误: E486: Pattern not found:

我正在尝试保存一个宏,该宏将
\n
替换为

输入:

978818
978818
900298
900272
输出:

'978818','978818','900298','900272'
当我在vimrc中使用CTRL+R CTRL+R,B保存宏时,它如下所示:

let @b = ":%s/\n/','/g^MI'^[A~@kb~@kb^["
但现在,当我运行此宏时,它将输出为:

978818978818900298900272
和错误:

E486: Pattern not found: ','

不知道它为什么试图匹配

您可能需要退出\n。vim认为您需要在字符串中的该点处添加一个新行字符,并将其替换为文字新行。因此,固定宏应该是

let@b=“:%s/\\n/”,“/g^MI”^[A~@kb~@kb^[”

编辑:如果你想要的东西,你可以复制和粘贴,我相信下面的宏是相当于你想要的


let@b=“:%s/\\n/”,“/g\nI'\e$xx”

很抱歉,这似乎也不起作用。它只是在命令空间中打印整个宏,您复制并粘贴了吗?
^M
^[
是vim中的特殊字符。这些字符无法复制和粘贴。您只需在原始宏中的
\n
前面添加另一个
\