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!```