iwa*_*nyj 4 regex vim search escaping
我正在vimscript中编写一个vim插件,我需要使用以下命令在另一个文件中搜索当前光标下的单词:
exec 'vimgrep /' . expand('<cword>') . '/g filename'
Run Code Online (Sandbox Code Playgroud)
我需要确保搜索模式中没有正则表达式或斜杠.
我该如何逃脱这些角色?
用\V它开始正则表达式,它变成"非常无害"的模式; 即只有以反斜杠开头的原子才是特殊的.确切地说,这个反斜杠然后通过转义escape().并且,由于此正则表达式由分隔符/.../,因此正斜杠也必须被转义.
exec 'vimgrep /\V' . escape(expand('<cword>'), '/\') . '/g filename'
Run Code Online (Sandbox Code Playgroud)
如果要使搜索区分大小写,而不考虑'ignorecase'设置,请添加\Catom:/\V\C...
PS:如果filename可以包含特殊字符(比如%),你也应该fnameescape()这样.
| 归档时间: |
|
| 查看次数: |
1037 次 |
| 最近记录: |