gpt4 book ai didi

regex - 如何在vimscript中转义搜索模式或正则表达式?

转载 作者:行者123 更新时间:2023-12-04 23:26:58 24 4
gpt4 key购买 nike

我正在 vimscript 中编写一个 vim 插件,我需要使用以下命令在另一个文件中搜索当前光标下的单词:

exec 'vimgrep /' . expand('<cword>') . '/g filename'

我需要确保搜索模式中没有正则表达式或斜线。

我怎样才能转义这些字符?

最佳答案

\V 开始正则表达式,它变成了“非常游牧”模式;即只有以反斜杠开头的原子是特殊的。正是这个反斜杠然后通过 escape() 转义.而且,由于这个正则表达式由 /.../ 分隔,正斜杠也必须转义。

exec 'vimgrep /\V' . escape(expand('<cword>'), '/\') . '/g filename'

如果您想使搜索区分大小写而不管 'ignorecase'设置,添加 \C原子: /\V\C...
PS:如果 filename可以包含特殊字符(如 % ),你应该 fnameescape()它也。

关于regex - 如何在vimscript中转义搜索模式或正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11311431/

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