我正在使用vim的greplace插件,我不知道如何在搜索中转义括号。
我想搜索cookies [:parent]并尝试过:
:Gsearch cookies[:parent] # returns nothing
:Gsearch cookies\[:parent\] # returns nothing
我该怎么做?
由于
答案 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]
[是字符类的开头,因此需要进行转义。 ]并不特别特别,所以不需要逃脱。