我最近发现git grep
并且喜欢它的速度和事实上只搜索回购文件中的文件。但是来自ack
(Ubuntu中的ack-grep
),还有一件事需要输出格式化,不幸的是更像grep
而不是ack
。去图。
ack
:
另一方面, git grep
:
是否有任何git grep
选项或其他工具组合可以使git grep
输出看起来像ack
输出?
答案 0 :(得分:10)
您已经回答了部分问题(--break
在文件之间插入一个空行,--heading
分别打印文件名,-n
或{{1} }给出每行的行号。)
其余的只是颜色选项,通过--line-number
条目set in git config
。请参阅文档以获取完整的详细信息,但请注意,根据您的要求,我认为这样可以解决问题:
color.grep.<slot>
(这表示为您在[alias]
ack = -c color.grep.linenumber=\"bold yellow\" \
-c color.grep.filename=\"bold green\" \
-c color.grep.match=\"reverse yellow\" \
grep --break --heading --line-number
中看到它,因为引用很乱)。
或者,在一个命令中设置它:
git config --global --edit
添加或减去git config --global alias.ack '-c color.grep.linenumber="bold yellow"
-c color.grep.filename="bold green"
-c color.grep.match="reverse yellow"
grep --break --heading --line-number'
选项以更改您喜欢的颜色,并/或通过设置-c
而不是使用color.grep.<name> = color
别名将其设置为首选默认值。
答案 1 :(得分:3)
从Travis Jeffery到群组 git grep
输出,如ack
:
git config --global alias.g "grep --break --heading --line-number"
然后像git g
一样使用git grep
:
git g <search_string>
这与ack
输出不完全匹配 - 它缺少颜色突出显示 - 但是对于快速解决方案,它没问题。
答案 2 :(得分:0)
应用this patch后,几乎所有操作都可以通过Git配置完成:
git config --global color.grep.linenumber "bold yellow"
git config --global color.grep.filename "bold green"
git config --global color.grep.match "reverse yellow"
git config --global grep.linenumber true
git config --global grep.heading true
(丢失的位是--break
的配置选项。)