SilverSearcher - 为什么我可以使用 `--ignore=PATTERN` 当文档说 `--ignore PATTERN` 时没有等号?

SilverSearcher - Why can I use `--ignore=PATTERN` when documentation says `--ignore PATTERN` without a equal sign?

我不得不忽略多个目录,所以我尝试了

ag --hidden --ignore '.git' --ignore 'plugged' -g ""

但是每次我试图忽略一个目录时,这种叙述 --ignore 的过程感觉是不必要的。所以,我尝试使用 bash 大括号完成,如下所示:

ag --hidden --ignore {.git,plugged} -g ""

但它并没有奏效,这是理所当然的。因为花括号里面的东西,补全后会是这样的

ag --hidden --ignore .git plugged -g ""

稍微浏览后我试了一下:

ag --hidden --ignore={.git,plugged} -g ""

它奏效了。但是为什么使用 --ignore=PATTERN 会产生与 --ignore PATTERN 相同的结果,而文档 (man ag) 清楚地说明了 --ignore PATTERN 的方式?

这是 ag 的命令行解析及其文档的已知问题。参见:

  1. https://github.com/ggreer/the_silver_searcher/issues/778
  2. https://github.com/ggreer/the_silver_searcher/pull/707

在这种特定情况下,由于 ag 正确读取了带和不带等号的忽略模式,它看起来更像是一个未记录的功能,而不是一个缺点。