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
前面添加另一个\
。