類似ack
的程式碼搜尋工具,注重速度。
你認識C嗎?想提高ag嗎?我邀請你與我結對。
ack
快一個數量級。.gitignore
和.hgignore
中的檔案模式。.ignore
檔案即可。 (*咳* *.min.js
*咳*)ack
短 33%,並且所有鍵都在主行!Ag現在已經很穩定了。大多數更改是新功能、小錯誤修復或效能改進。在我的基準測試中它比 Ack 快得多:
ack test_blah ~/code/ 104.66s user 4.82s system 99% cpu 1:50.03 total
ag test_blah ~/code/ 4.67s user 4.58s system 286% cpu 3.227 total
Ack 和 Ag 發現了相同的結果,但 Ag 快了 34 倍(3.2 秒 vs 110 秒)。我的~/code
目錄大約有 8GB。感謝 git/hg/ignore,Ag 只搜尋了其中的 700MB。
還有跨版本的效能圖表。
mmap()
編輯而不是讀入緩衝區。pcre_study()
。fnmatch()
,而是將非正則表達式模式載入到陣列中並進行二進位搜尋。我寫了幾篇部落格文章來展示我如何提高效能。其中包括我如何添加 pthreads、編寫自己的scandir()
、對每個修訂進行基準測試以查找效能回歸,以及如何使用 gprof 和 Valgrind 進行分析。
brew install the_silver_searcher
或者
port install the_silver_searcher
Ubuntu >= 13.10 (Saucy) 或 Debian >= 8 (Jessie)
apt-get install silversearcher-ag
Fedora 21 及更低版本
yum install the_silver_searcher
軟呢帽 22+
dnf install the_silver_searcher
RHEL7+
yum install epel-release.noarch the_silver_searcher
根圖
emerge -a sys-apps/the_silver_searcher
拱
pacman -S the_silver_searcher
斯萊克軟體
sbopkg -i the_silver_searcher
開放SUSE
zypper install the_silver_searcher
中央作業系統
yum install the_silver_searcher
NixOS/Nix/Nixpkgs
nix-env -iA silver-searcher
SUSE Linux Enterprise:遵循這些簡單的說明。
自由BSD
pkg install the_silver_searcher
OpenBSD/NetBSD
pkg_add the_silver_searcher
作業系統32/64
提供非官方每日建置。
溫蓋特
winget install "The Silver Searcher"
筆記:
巧克力口味
choco install ag
系統2
pacman -S mingw-w64-{i686,x86_64}-ag
西格文
執行相關的setup-*.exe
,並在「Utils」類別中選擇「the_silver_searcher」。
安裝相依性(Automake、pkg-config、PCRE、LZMA):
蘋果系統:
brew install automake pkg-config pcre xz
或者
port install automake pkgconfig pcre xz
Ubuntu/Debian:
apt-get install -y automake pkg-config libpcre3-dev zlib1g-dev liblzma-dev
軟呢帽:
yum -y install pkgconfig automake gcc zlib-devel pcre-devel xz-devel
CentOS:
yum -y groupinstall "Development Tools"
yum -y install pcre-devel xz-devel zlib-devel
開放SUSE:
zypper source-install --build-deps-only the_silver_searcher
Windows:這很複雜。請參閱此維基頁面。
運行建置腳本(僅運行 aclocal、automake 等):
./build.sh
在 Windows 上(在 msys/MinGW shell 內):
make -f Makefile.w32
進行安裝:
sudo make install
GPG 簽署的版本可在此處取得。
建置發布 tarball 需要相同的依賴項,除了 automake 和 pkg-config 之外。安裝依賴項後,只需執行:
./configure
make
make install
您可能需要使用sudo
或以 root 身分執行來進行安裝。
您可以透過將以下行新增至.vimrc
來將 Ag 與 ack.vim 一起使用:
let g:ackprg = 'ag --nogroup --nocolor --column'
或者:
let g:ackprg = 'ag --vimgrep'
它具有相同的效果,但會報告該行的每個匹配項。
您可以使用 ag.el 作為 Ag 的 Emacs 前端。另請參閱:helm-ag。
TextMate 用戶可以將 Ag 與我的熱門 AckMate 外掛程式的分支一起使用,它允許您同時使用 Ack 和 Ag 進行搜尋。如果您已經有 AckMate,只想將 Ack 替換為 Ag,請移動或刪除"~/Library/Application Support/TextMate/PlugIns/AckMate.tmplugin/Contents/Resources/ackmate_ack"
並執行ln -s /usr/local/bin/ag "~/Library/Application Support/TextMate/PlugIns/AckMate.tmplugin/Contents/Resources/ackmate_ack"