我正在执行以下vimgrep搜索(在vim(!)中)....
:vimgrep /^\s*bool\s\+\i\+\s*=\s*\(false\)\|\(true\);\s*$/ *[files....]*
Run Code Online (Sandbox Code Playgroud)
为了在我的代码中找到bool变量初始化.它成功返回所有bool初始化,例如
bool result1 = false;
bool result2=true;
Run Code Online (Sandbox Code Playgroud)
但它也会返回分配bool(未初始化)的其他行,例如
result = true;
Run Code Online (Sandbox Code Playgroud)
(即,即使在行的开头没有找到bool,它也会返回行).
如果有人能告诉我它为什么匹配代码,那么在行的开头没有"bool"类型说明符,我将不胜感激.
非常感谢,
史蒂夫.
:vimgrep /^\s*bool\s+\i+\s*=\s*(false)\|(true);\s*$/ [files....]
^ ^^^^ ^
Run Code Online (Sandbox Code Playgroud)
你有一些问题,都有标记:
\(...\)用来分组原子,而不是(...).\(没有附带产生的反馈().\|在括号内:\(false\|true\),或者它将把它作为«找到一个布尔变量初始化为假(^\s*bool\s+\i+\s*=\s*\(false\)部分)的行或一行包含true后面跟着一个分号的行(\(true\);\s*$部分)».