【问题标题】:vim macro replacing \n with ','vim 宏将 \n 替换为 ','
【发布时间】:2013-04-16 03:44:51
【问题描述】:

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

输入:

978818
978818
900298
900272

输出:

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

当我使用 CTRL+R CTRL+R 保存宏时,B kbd> 在 vi​​mrc 中如下所示:

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

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

978818978818900298900272

和错误:

E486: Pattern not found: ','

不知道为什么要匹配,

【问题讨论】:

    标签: vim macros


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 对不起,但这似乎也不起作用。它只是在命令空间中打印整个宏
    • 你复制粘贴了吗? ^M^[ 是 vim 中的特殊字符。这些不能复制和粘贴。您只需在原始宏中的\n 前面添加另一个\
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 2011-06-16
    • 2012-05-14
    • 2020-05-24
    相关资源
    最近更新 更多