类似于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"