ack是一個perl腳本,是grep的一個可選替換。

有以下優勢:

  • 為程序員設計,使用方便,輸入較少
    • 默認遞歸搜索
    • 缺省提供多種文件類型供選,文件類型對應的後綴名可修改
  • 使用perl的正則表達式,而grep只支持其一個子集
  • 搜索結果高亮輸出

很多人以訛傳訛,使人容易對ack的搜索速度產生誤解。ack的官方宣傳中說比grep快,其前提是ack可方便地針對部分後綴的文件進行搜索,而grep默認對所有文件搜索。ack的官方文檔中明確指出,在對大量文件進行搜索時,grep的速度還是最快的。

~/.ackrc

使用此配置文件存儲ack的常用選項。

-i --type-add php=.lib

如上所示,該文件中每一行應該是ack命令行參數中用空格分隔的一個部分。

例子

如果搜索的關鍵詞是正則表達式,在Linux下必須將其用雙引號包圍起來。

如:

1
ack "gbldb\s*="

Windows下的安裝

  • 安裝strawberryperl
  • 保存ack.plC:\bin
  • 創建批處理文件C:\bin\ack.bat
    1
    2
    @echo off
    perl.exe c:/bin/ack.pl %*
  • C:\bin加入環境變量%PATH%

資源

  • ack.vim: Vim使用ack的輔助擴展

Posted via UltraBlog.vim.