【问题标题】:How do you make `git grep` output look like `ack` output?你如何使 `git grep` 输出看起来像 `ack` 输出?
【发布时间】:2016-09-19 20:04:23
【问题描述】:

我最近发现了git grep,并开始喜欢它的速度和事实上只搜索 repo 中的文件。但是来自ack(Ubuntu 中的ack-grep),还有一点需要注意的是输出格式,不幸的是,它更像grep 而不是ack。去图吧。

ack

  1. 第一行上单独打印匹配的文件名
  2. 颜色将匹配的文件名突出显示为粗体绿色
  3. 打印行号,行号每个匹配行
  4. 颜色突出显示行号粗体黄色
  5. 颜色突出显示每个匹配字符串一个背景黄色
  6. 在来自不同文件的匹配项之间打印空白行

另一方面,git grep

  • 每个匹配的上打印文件名
  • 打印无行号
  • 在来自不同文件的匹配项之间打印无空白行
  • 颜色突出显示匹配的文本粗体红色

是否有任何git grep 选项集或与其他工具的组合可以使git grep 输出看起来像ack 输出?

【问题讨论】:

    标签: git grep ack


    【解决方案1】:

    Travis Jeffery,到 git grep输出类似ack

    git config --global alias.g "grep --break --heading --line-number"
    

    然后像使用git grep 一样使用git g

    git g <search_string>
    

    这与ack 输出不完全匹配——它缺少颜色突出显示——但对于一个快速的解决方案来说没关系。

    【讨论】:

      【解决方案2】:

      您已经回答了自己的部分问题(--break 在文件之间插入一个空行,--heading 分别打印文件名,-n--line-number 为您提供每行的行号)。

      剩下的只是颜色选项,通过color.grep.&lt;slot&gt; 条目是set in git config。有关完整详细信息,请参阅文档,但请注意,根据您的要求,我认为这可以解决问题:

      [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.&lt;name&gt; = color 而不是使用git ack 别名将它们设置为您喜欢的默认值。

      【讨论】:

      • 也许ack 是一个更好的别名。
      【解决方案3】:

      应用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 的配置选项。)

      【讨论】:

        猜你喜欢
        • 2021-09-10
        • 2018-06-09
        • 2018-07-28
        • 1970-01-01
        • 1970-01-01
        • 2020-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多