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 秒対 110 秒)。私の~/code
ディレクトリは約 8GB です。 git/hg/ignore のおかげで、Ag はそのうち 700MB だけを検索しました。
リリース間のパフォーマンスのグラフもあります。
mmap()
で処理されます。pcre_study()
を呼び出します。fnmatch()
呼び出す代わりに、正規表現以外のパターンが配列にロードされ、バイナリ検索が行われます。私はパフォーマンスをどのように向上させたかを示すブログ記事をいくつか書きました。これらには、pthread を追加する方法、独自の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
Fedora 22+
dnf install the_silver_searcher
RHEL7+
yum install epel-release.noarch the_silver_searcher
Gentoo
emerge -a sys-apps/the_silver_searcher
アーチ
pacman -S the_silver_searcher
スラックウェア
sbopkg -i the_silver_searcher
openSUSE
zypper install the_silver_searcher
CentOS
yum install the_silver_searcher
NixOS/Nix/Nixpkgs
nix-env -iA silver-searcher
SUSE Linux Enterprise: 以下の簡単な手順に従ってください。
FreeBSD
pkg install the_silver_searcher
OpenBSD/NetBSD
pkg_add the_silver_searcher
Win32/64
非公式のデイリービルドが利用可能です。
ウィンゲット
winget install "The Silver Searcher"
注:
チョコレートティ
choco install ag
MSYS2
pacman -S mingw-w64-{i686,x86_64}-ag
シグウィン
関連するsetup-*.exe
を実行し、「Utils」カテゴリで「the_silver_searcher」を選択します。
依存関係をインストールします (Automake、pkg-config、PCRE、LZMA)。
macOS:
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
セントOS:
yum -y groupinstall "Development Tools"
yum -y install pcre-devel xz-devel zlib-devel
openSUSE:
zypper source-install --build-deps-only the_silver_searcher
ウィンドウズ: 複雑ですね。このウィキページを参照してください。
ビルド スクリプトを実行します (aclocal、automake などを実行するだけです)。
./build.sh
Windows の場合 (msys/MinGW シェル内):
make -f Makefile.w32
インストールを行う:
sudo make install
GPG 署名付きリリースはここから入手できます。
リリース tarball のビルドには、automake と pkg-config を除き、同じ依存関係が必要です。依存関係をインストールしたら、次を実行するだけです。
./configure
make
make install
make install には、 sudo
使用するか、root として実行する必要がある場合があります。
次の行を.vimrc
に追加することで、ack.vim で Ag を使用できます。
let g:ackprg = 'ag --nogroup --nocolor --column'
または:
let g:ackprg = 'ag --vimgrep'
これは同じ効果がありますが、ライン上のすべての一致をレポートします。
ag.el を Ag の Emacs フロントエンドとして使用できます。 「helm-ag」も参照してください。
TextMate ユーザーは、人気のある AckMate プラグインの私のフォークで Ag を使用できます。これにより、検索に 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"