Ag (the_silver_searcher) 安装使用
2024-06-28 13:25:44
供稿:网友
Ag (the_silver_searcher) 安装使用## if (I am a Programmer || I have a strong sense of time) I use ag___##1. 安装命令行ag(代码中行首的“//”是多余的)```bash/#!/usr/bin/env bash/#Author Leslie Guan/#make sure you have the root permission/#Usage . install_ag.shset -xTEMP_DIR=$(mktemp -d Leslie.Guan.XXXXXX)cd ${TEMP_DIR}wget https://github.com/ggreer/the_silver_searcher/archive/master.zipTAR_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 installcd ../../rm -rf ${TEMP_DIR}ag -Vset +x ```ubuntu13.10以后可以直接运行```bashapt-get install silversearcher-ag```[ag_GitHub](https://github.com/ggreer/the_silver_searcher)##2. 安装Vim插件(*必须先安装ag命令行工具*)(代码中行首的“//”是多余的)```bash/#!/usr/bin/env bash/#Author Leslie Guan/#make sure you have the root permission/#Usage . install_Ag4Vim.shset -xTEMP_DIR=$(mktemp -d Leslie.Guan.XXXXXX)cd ${TEMP_DIR}wget https://github.com/rking/ag.vim/archive/master.zipTAR_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](https://github.com/rking/ag.vim)##3. 使用命令行使用```bashag HelloWorldag HelloWorld path/to/search``````bashAg HelloWorldAg HelloWorld path/to/search```在Ag查找出来的quickfix窗口中,你可以使用下列命令:```bashe to open file and close the quickfix windowo to open (same as enter)go to preview file (open but maintain focus on ag.vim results)t to open in new tabT to open in new tab silentlyh to open in horizontal splitH to open in horizontal split silentlyv to open in vertical splitgv to open in vertical split silentlyq to close the quickfix window```*详细使用方法请查看帮助:*```bashman ag```##4. Why ag*速度对比ag>ack>grep*在android全部源码中查找(测试环境20线程32GB内存):```bashtime ag -i activityreal2m42.568suser0m16.049ssys1m29.358s``````bashtime ack -i activityreal5m17.780suser1m35.830ssys0m17.521s``````bashtime grep -Hrni activity .real49m27.518suser43m13.918ssys0m38.178s```[What's so great about Ag?](https://ruby-china.org/topics/8728)```bashIt 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!```