2

我正在执行以下 vimgrep 搜索(在 vim(!) 中)....

:vimgrep /^\s*bool\s\+\i\+\s*=\s*\(false\)\|\(true\);\s*$/      *[files....]*

为了在我的代码中找到布尔变量初始化。它成功返回所有布尔初始化,例如

bool result1 = false;

bool result2=true;

但它也会返回分配了布尔值(未初始化)的其他行,例如

result = true;

(即,即使在行首没有找到 bool ,它也会返回行)。

如果有人能告诉我为什么它与行首没有“bool”类型说明符的代码匹配,我将不胜感激。

非常感谢,

史蒂夫。

4

1 回答 1

7
:vimgrep /^\s*bool\s+\i+\s*=\s*(false)\|(true);\s*$/ [files....]
                                 ^     ^^^^   ^

你有一些问题,两者都被标记:

  1. Vim 用于\(...\)对原子进行分组,而不是(...).看起来那是 SO 解析器问题(\(未包含在 backtics 中()。
  2. 你应该有\|内括号:\(false\|true\),否则它将把它当作«查找布尔变量初始化为假的行(^\s*bool\s+\i+\s*=\s*\(false\)部分)或包含行true尾的分号的行(\(true\);\s*$部分)»。
于 2010-09-09T16:32:14.867 回答