我正在执行以下vimgrep搜索(在vim(!)中)....
:vimgrep /^\s*bool\s\+\i\+\s*=\s*\(false\)\|\(true\);\s*$/ *[files....]*
为了在我的代码中找到bool变量初始化。它成功返回所有bool初始化,例如
bool result1 = false;
bool result2=true;
但它也会返回指定bool(未初始化)的其他行,例如
result = true;
(即即使在行的开头没有找到bool,它也会返回行。)
如果有人能告诉我为什么它匹配代码,那么在行的开头没有“bool”类型说明符,我将不胜感激。
非常感谢,
史蒂夫。
答案 0 :(得分:7)
:vimgrep /^\s*bool\s+\i+\s*=\s*(false)\|(true);\s*$/ [files....]
^ ^^^^ ^
你有一些问题,都标有:
\(...\)
对原子进行分组,而不是(...)
。\(
没有附带反复产生{{1} }})。(
:\|
,或者将它作为«找到布尔变量初始化为假(\(false\|true\)
部分)的行或者一行包含^\s*bool\s+\i+\s*=\s*\(false\)
,后跟行尾的分号(true
部分)»。