2

我正在尝试保存一个替换为的\n,

输入:

978818
978818
900298
900272

输出:

'978818','978818','900298','900272'

CTRL当我使用++保存宏时,在 vimrc 中它如下所示R CTRLRB

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

但是现在当我运行这个宏时,它给出的输出为:

978818978818900298900272

和错误:

E486: Pattern not found: ','

不知道为什么它试图匹配,

4

1 回答 1

2

您可能需要转义 \n。vim 认为您在字符串中的该点需要一个换行符,并将其替换为文字换行符。所以固定宏应该是。

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

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

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

于 2013-04-06T14:56:46.227 回答