vim:搜索(替换插件)转义字符

时间:2012-04-18 22:58:44

标签: vim grep macvim

我正在使用vim的greplace插件,我不知道如何在搜索中转义括号。

我想搜索cookies [:parent]并尝试过:

:Gsearch cookies[:parent] # returns nothing
:Gsearch cookies\[:parent\] # returns nothing

我该怎么做?

由于

3 个答案:

答案 0 :(得分:2)

尝试

Gsearch cookies\\\[:parent\\\]

Gsearch 'cookies\[:parent\]'

。如果我理解正确,由:grep!调用的:Gsearch调用的shell将获取字符串grep -n cookies\[:parent\] /dev/null(假设grepprg选项具有默认值),因此您的转义由shell认为它们用于转义{ {1}}以防止全局扩展。但是在通过shell执行globbing后,grep将参数作为模式,所以你需要为grep转义它,这就是为什么我在这里有三个反斜杠:两个是让grep得到一个反斜杠而第三个是为了防止全局扩展。

答案 1 :(得分:1)

:Gsearch cookies\\\[:parent]适合我。

请记住:除了模式之外,Gsearch还需要一个文件掩码,因此实际上,您需要键入类似:Gsearch \\\[:parent] *.php或类似内容的内容,以指定要搜索的文件。

答案 2 :(得分:0)

:Gsearch cookies\[:parent]

[是字符类的开头,因此需要进行转义。 ]并不特别特别,所以不需要逃脱。