gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:25:32 27 4
gpt4 key购买 nike

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

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

包含以下内容的文件:

15

其次是

:%s/\m15\?/replaced/

确实会将 15 替换为 replaced

谁能指出这里的分歧以及手册解释的地方?

最佳答案

尝试

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

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

或者,您可以使用单引号(“literal-string”),它不解释而是按原样使用 \:

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

(要查看区别,请尝试 echo "\?"echo '\?'。)

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

关于vim - 为什么 vim 不接受\?在替代()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67293264/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com