vim模式搜索/替换需要转义的所有特殊字符是什么?

7

有没有一个列表?当我想在我的Python代码中将{inspect.stack()[0][3]}替换为{inspect.stack()[0][3]} called from {inspect.stack()[1][3]}时,我遇到了麻烦。但我在互联网上找不到完整的列表。

1个回答

4

:substitute(命令)

要进行字面替换,需要指定“非魔术”:help /\V(或转义所有特殊搜索字符^$.*[~),并指定“区分大小写”/\C,并转义:substitute分隔符(通常为/)和源中的任何反斜杠(\)。行结束符必须从^M更改为\n。综上所述,对于模式:

'\V\C' . substitute(escape(literalPattern, '/\'), "\n", '\\n', 'ge')

在替换中,如果设置了'magic'选项,除了/\之外,&~也必须进行转义(\V在此处无效)。参见:help sub-replace-special

escape(literalReplacement, '/\' . (&magic ? '&~' : ''))

substitute()(函数)

对于substitute(),类似的规则也适用; &必须始终被转义,因为'magic'总是设置的,只有~不需要被转义:

substitute(input, '\V\C' . escape(literalPattern, '\'), escape(literalReplacement, '\&')), 'g')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接