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
的命令行解析及其文档的已知问题。参见:
- https://github.com/ggreer/the_silver_searcher/issues/778
- https://github.com/ggreer/the_silver_searcher/pull/707
在这种特定情况下,由于 ag
正确读取了带和不带等号的忽略模式,它看起来更像是一个未记录的功能,而不是一个缺点。
我不得不忽略多个目录,所以我尝试了
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
的命令行解析及其文档的已知问题。参见:
- https://github.com/ggreer/the_silver_searcher/issues/778
- https://github.com/ggreer/the_silver_searcher/pull/707
在这种特定情况下,由于 ag
正确读取了带和不带等号的忽略模式,它看起来更像是一个未记录的功能,而不是一个缺点。