可以用 git grep
git grep xxx
真是太好用了 :)
不是 git 仓库怎么办?
ag
A code searching tool similar to ack
, with a focus on speed.
和ack类似,但是 ag 更快,软件开发 唯快不破 :)
ubuntu 源码安装
git clone https://github.com/ggreer/the_silver_searcher.git
sudo apt-get install -y automake pkg-config libpcre3-dev zlib1g-dev liblzma-dev
cd the_silver_searcher
./build.sh
sudo make install
ubuntu 安装
apt-get install silversearcher-ag
centos 安装
yum install the_silver_searcher
查看版本号
~/kubernetes/docker $ ag --version
ag version 2.1.0
Features:
+jit +lzma +zlib
使用
ag wjs\.
hello.go~
9: log.Print("hello world", wjs.Add(5,6))
hello.go
9: log.Print("hello world", wjs.Add(5,6))
搜索 所有的 go 文件 类似于 (find -name *.go)
ag -g *.go
emacs 下用 ag
git clone https://github.com/Wilfred/ag.el.git
(add-to-list 'load-path "/home/wjs/emacs/ag.el")
(require 'ag)
在公司电脑装的时候发现 缺乏了 dash.el 和 s.el
git clone https://github.com/magnars/s.el.git
git clone https://github.com/magnars/dash.el.git
(add-to-list 'load-path "~/emacs/dash.el")
(add-to-list 'load-path "~/emacs/s.el")
(add-to-list 'load-path "~/emacs/ag.el")
(require 'ag)
(global-set-key "\C-\M-f" 'ag-files)
emacs 下用起来 简直神器了啊 :)
M-x ag RET
指定搜索字符串 RET 比如我输入了 main(
指定搜索目录 RET
C-h m 一下 找找看 这个Model里有哪些快捷键
p 跳转到上一个结果
n 跳转到 下一个结果
再按 Enter
就会在另一个 buffer 里打开这个文件 并定位到 该字符串处
还可以用 ag-files
可以指定仅搜索文件后缀
M-x ag-files
Search string (default main): main(
Select file type: c
Filenames which match PCRE: \.c
Directory: ~/cpp/
更多用法 请参考