grep in with --include in project with variable depth

grep in with --include in project with wariable depth

我非常喜欢使用 grep,因为它功能强大且可定制。 :vimgrep 对我来说太慢了,grep 也没有 --include(或 --exclude)。此外,我使用至少 8 种文件类型,--include 是一个巨大的帮手。

我的问题是:

:grep "ILookForThat" **/*.{c,h}*

只搜索一个目录深度,而我至少需要四个。

:grep -R "ILookForThat" --include=*.{c,h}*

不起作用(与 "*.{c,h}*" 相同)

我寻找的是答案:如何使 grep(不是 vimgrepag 或其他任何东西)工作,或者可能是一些答案:"That definitely should work".

我可以补充一点,我使用 64 位 Ubuntu 16.04 LTS,删除了我的 grep 别名。 当然没有快速列表的答案是不被接受的。

经过一些快速测试后,我认为这对你有用,但有点冗长:

:grep -r --include="*.c" --include="*.h" "ILookForThat" .

如果它太冗长而无用,您可以考虑将其包装在自定义 :command 中。

:grep -r --include=*.{c,h}* ILookForThat .
一切都按设计工作,但在 vim 中使用的 grep 必须有一个起点,该起点用 字符表示。