在 vim 中是否可以对 :substitute 和 search 使用相同的正则表达式转义规则?

In vim is it possible to use the same regex escaping rules for :substitute and search?

如果我进行如下搜索(使用魔法):/\v$[^ ]+$ 我会在我的文件中找到匹配项,但是如果我用相同的搜索模式替换::%smagic/$[^ ]+$//,我需要转义 +.

是否可以使转义以相同的方式进行魔法搜索和魔法替代?

使用\v代替magic

:%s/\v$[^ ]+$//

:smagic 就像 :s 打开 'magic',这是默认设置(不应该为了插件的可移植性而更改,如其 :help 注释)。 \v 特殊原子指定 very magic,因此额外的原子(如 \+) 不需要前面的反斜杠。

没有相应的 :s 命令变体,但为什么不保留模式中的 \v

:%s/\v$[^ ]+$//

(此外,如果您之前搜索过该内容,则可以完全省略该模式::%s///。)