Vim 带括号和分号的Grep/Ack表达式

Vim 带括号和分号的Grep/Ack表达式,vim,grep,ag,Vim,Grep,Ag,我用的是vim Ag.vim。我想在我的项目中搜索let(:application) 如果我做了:Ag“let(:application)app/我会得到 || ERR: Bad regex! pcre_compile() failed at position 16: missing ) || If you meant to search for a literal string, run ag with -Q 使用Ag-Q“let(:application”app/ 你知道正确的模式吗?你可

我用的是vim Ag.vim。我想在我的项目中搜索
let(:application

如果我做了
:Ag“let(:application)app/
我会得到

|| ERR: Bad regex! pcre_compile() failed at position 16: missing )
|| If you meant to search for a literal string, run ag with -Q
使用
Ag-Q“let(:application”app/


你知道正确的模式吗?

你可以跳过
):

或者对固定字符串使用
grep
-F

grep -F "let(:application" app/

我猜你被维姆的魔法模式和ag的模式弄糊涂了:


传递给
ag
的正则表达式模式参数不遵循vim的
magic
设置。默认情况下,ag应用
PCRE
,因此您必须转义
以让
ag
知道您想要匹配
文本(
。或者你给
-Q
选项来实现同样的目标。

:Ag'let\(...dir/
应该可以工作。
:Ag-Q“…”
在这里也可以工作。为什么不使用
grep
和参数
-F
(按照固定字符串,而不是Regex)?-->
grep-F“let(:application)”
@fedorqui yep它与grep一起工作。ThanksThanks@Kent``似乎起到了作用。发布了一个[wiki]答案,以便明确是什么解决了你的问题。
grep -F "let(:application" app/