Home

Awesome

ggreer/the_silver_searcher explain translate-svg

<!-- [![size-img]][size] -->

「 类似ack的代码搜索工具,专注于速度. 」

中文 | english


校对 ✅

<!-- doc-templite START generated --> <!-- repo = 'ggreer/the_silver_searcher' --> <!-- commit = '1b06a9fd8d9ad0aaf235b4a752e605dfd4bb7ced' --> <!-- time = '2018-11-27' -->
翻译的原文与日期最新更新更多
commit⏰ 2018-11-27last中文翻译
<!-- doc-templite END generated -->

贡献

欢迎 👏 勘误/校对/更新贡献 😊 具体贡献请看

生活

If help, buy me coffee —— 营养跟不上了,给我来瓶营养快线吧! 💰


银色搜索者(The Silver Searcher)

类似ack的代码搜索工具,专注于速度.

Build Status

Floobits Status

#ag on Freenode

你知道 C 吗?想改善 ag?我邀请你和我一起合作.

Ag 的优点是什么?

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.

还有各版本的性能图表.

怎么这么快?

我写了几篇博文,展示了我如何提高性能。这些包括我添加了 pthreads,写了我自己的scandir(),对每个修订版本进行基准测试,以辨识性能回退gprof Valgrind 配置文件.

安装

macOS

brew install the_silver_searcher

要么

port install the_silver_searcher

Linux

  apt-get install silversearcher-ag
  yum install the_silver_searcher
  dnf install the_silver_searcher
  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
  zypper install the_silver_searcher
  yum install the_silver_searcher

BSD

  pkg install the_silver_searcher
  pkg_add the_silver_searcher

Windows

  choco install ag
  pacman -S mingw-w64-{i686,x86_64}-ag

从源头构建

构建主分支

  1. 安装依赖项(Automake,pkg-config,PCRE,LZMA):
brew install automake pkg-config pcre xz

要么

port install automake pkgconfig pcre xz
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
yum -y groupinstall "Development Tools"
yum -y install pcre-devel xz-devel zlib-devel
zypper source-install --build-deps-only the_silver_searcher
  1. 运行构建脚本(只运行 aclocal,automake 等):
./build.sh

在 Windows 上(在 msys/MinGW shell 中):

make -f Makefile.w32
  1. 安装:
sudo make install

构建一个发布的压缩(二进制)文件

可以使用 GPG 签名的版本,在这里.

构建发行版 tar 包需要相同的依赖项,但 automake 和 pkg-config 除外。一旦安装了依赖项,就运行:

./configure
make
make install

您可能需要使用sudo或以 root 身份运行 make install.

编辑器集成

Vim

你可以使用 Ag 的ack.vim,将以下行添加到您的.vimrc:

let g:ackprg = 'ag --nogroup --nocolor --column'

要么:

let g:ackprg = 'ag --vimgrep'

哪个具有相同的效果,但会报告该代码行上的每个匹配.

Emacs

您可以使用ag.el作为 Ag 的 Emacs 前端。也可以看看:helm-ag.

TextMate

TextMate 用户可以通过我的叉子-流行的 AckMate 插件使用 Ag,它允许您使用 Ack 和 Ag 进行搜索。如果您已经拥有 AckMate,您只想用 Ag 替换 Ack,移动或删除"~/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"

你可能会喜欢的其他东西