之前 keitheis 提到比 ack 更快的 Ag (the_silver_searcher),已經成為我 search 的首選了。

ack > grep 我不以為然,但 ag 用起來就真的時髦又開心。 也不是因為快,就是指令符合懶惰需求,且沒有一些不解意圖的設計。


從 source 安裝比較實用

真正感到 stable 也是最近的事而已,所以正式 release 前,就直接 builing from source 吧,地雷可能比較少。

(version 0.14pre) 近期漂亮開發進展:

  1. #98 Files with non-english characters are trait as binary files
    修正特定檔案——例如中文較多的 html——誤判為 binary file 而被略過的問題。
  2. #110 Remove a leading "./" before printing by AndrewRadev
    移除輸出前頭的 ./ 顯示,較接近 ack/grep 行為。
  3. #90 Make colors configurable
    輸出色彩(path、line-number、match 部分)終於可以設定了。

我的設定

因為 Ag 還不支援設定檔,所以設定就是 .zshrc 裡的 alias 爾。
輸出調成類似 grep 的樣子。 再來個 agjs alias 專門搜專案中未壓縮的 JavaScript。

() {
  local common='noglob ag --nobreak --nogroup --noheading --smart-case --depth=27'
  local colors='--color-path 35 --color-line-number 32 --color-match "1;31"'
  alias ag=$common' '$colors
  alias agjs=$common' '$colors' -G public/javascripts/.*-(debug|src).js'
}

擷圖:

ag 輸出的樣子