源码搜索 emacs 下用 ag 或 git grep

可以用 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

源码搜索 emacs 下用 ag 或 git grep_第1张图片

 

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/

更多用法 请参考

ag.el 用法

你可能感兴趣的:(emacs)