为什么vim不接受?在替代()?

:echo substitute("15", "15?", "replaced", "")
15

:help substitute()报告我们cpoptions是空的,我们正在使用magic以及其他一些小的差异(似乎并不指向?不起作用)。

包含以下内容的文件:

15

其次是

:%s/m15?/replaced/

的确将替换15replaced

任何人都可以向我指出这里的分歧以及手册在哪里解释这一点?

回答

尝试

:echo substitute("15", "15?", "replaced", "")

在双引号中,解释为。例如,"n"是换行符,""是反斜杠字符等。由于表达式"?"没有特殊解释,它只是成为一个问号?,因此您实际上为15?函数提供了正则表达式。所以你需要转义才能使字符串被?Vim识别。

或者,您可以使用单引号(“literal-string”),它不会解释但按原样接受:

:echo substitute("15", '15?', "replaced", "")

(要查看差异,请尝试echo "?"echo '?'。)

一些相关的帮助条目是:help expr-":help expr-'


以上是为什么vim不接受?在替代()?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>