Ag (the_silver_searcher) 安装使用

if (I am a Programmer || I have a strong sense of time) I use ag


1. 安装命令行ag(代码中行首的“\”是多余的)

\#!/usr/bin/env bash
\#Author Leslie Guan
\#make sure you have the root permission
\#Usage . install_ag.sh
set -x
TEMP_DIR=$(mktemp -d Leslie.Guan.XXXXXX)
cd ${TEMP_DIR}
wget https://github.com/ggreer/the_silver_searcher/archive/master.zip
TAR_DIR=$(unzip *.zip)
TAR_DIR=${TAR_DIR%%/*}
TAR_DIR=${TAR_DIR##*:}
cd ${TAR_DIR}
apt-get install -y automake pkg-config libpcre3-dev zlib1g-dev liblzma-dev --force-yes
./build.sh && make install
cd ../../
rm -rf ${TEMP_DIR}
ag -V
set +x 

ubuntu13.10以后可以直接运行

apt-get install silversearcher-ag

ag_GitHub

2. 安装Vim插件(必须先安装ag命令行工具)(代码中行首的“\”是多余的)

\#!/usr/bin/env bash
\#Author Leslie Guan
\#make sure you have the root permission
\#Usage . install_Ag4Vim.sh
set -x
TEMP_DIR=$(mktemp -d Leslie.Guan.XXXXXX)
cd ${TEMP_DIR}
wget https://github.com/rking/ag.vim/archive/master.zip
TAR_DIR=$(unzip *.zip)
TAR_DIR=${TAR_DIR%%/*}
TAR_DIR=${TAR_DIR##*:}
cd ${TAR_DIR}
cp cp {plugin,autoload,doc} /usr/share/vim/vimcurrent/ -rf 
cd ../../
rm -rf ${TEMP_DIR}                                                                                                                                            
set +x

ag.vim_GitHub

3. 使用

命令行使用

ag HelloWorld
ag HelloWorld path/to/search
Ag HelloWorld
Ag HelloWorld path/to/search

在Ag查找出来的quickfix窗口中,你可以使用下列命令:

e    to open file and close the quickfix window
o    to open (same as enter)
go   to preview file (open but maintain focus on ag.vim results)
t    to open in new tab
T    to open in new tab silently
h    to open in horizontal split
H    to open in horizontal split silently
v    to open in vertical split
gv   to open in vertical split silently
q    to close the quickfix window

详细使用方法请查看帮助:

man ag

4. Why ag

速度对比ag>ack>grep

在android全部源码中查找(测试环境20线程32GB内存):

time ag -i activity
real	2m42.568s
user	0m16.049s
sys	1m29.358s
time ack -i activity
real	5m17.780s
user	1m35.830s
sys	0m17.521s
time grep -Hrni activity .
real	49m27.518s
user	43m13.918s
sys	0m38.178s

What's so great about Ag?

It searches code about 3–5× faster than ack.
It ignores file patterns from your .gitignore and .hgignore.
If there are files in your source repo you don't want to search, just add their patterns to a .agignore file. *cough* extern *cough*
The command name is 33% shorter than ack!
posted @ 2014-06-18 20:43  Leslie Guan  阅读(11770)  评论(0编辑  收藏  举报