ack.vim。应该是大多数vimer的必装插件。
在写这篇文章的时候才发现ack已经发布了2.0版本,并且ack 1已经不再维护。但是两者差别不大。这里介绍的基于2.0版本。
ack就是一个代码搜索工具,类似grep,用perl编写,充分利用了perl对正则的强大处理能力。为什么用ack而不是直接用grep?ack号称超越了grep。我基本认同。
再也不用这样输入:
grep foo $(find . -name '*.pm' | grep -v .svn)
ack的使用很简单,命令输入:
ack [OPTION]... PATTERN [FILES OR DIRECTORIES]
如果不输入文件或者文件夹,则默认在当前目录及子目录下搜索。
ack大致有如下几类OPTION,
Ack -f servicemodel
查找servicemodel相匹配的文件。具体的option可以查看ack文档.
这些option都可以直接配置到.ackrc中,作为默认配置。全局的ackrc放置于/etc/ackrc
,用户的放在$HOME/.ackrc
,仅仅用于某项目的就放在项目根目录中。
ack搜索结果如图所示:
会打开Quickfix窗口。显示文件名,对于的行列和该行内容。按t
可以在新标签打开,按回车直接打开,按v分隔垂直窗口打开等等。和前天介绍的NERD Tree等大多数插件的操作类似。
ack的用法就介绍到这里,这里还要介绍的是ag.和ack没什么区别,只是更快。
OS X下安装:
brew install the_silver_searcher
在vim中进行配置:
let g:ackprg = 'ag --nogroup --nocolor --column'
也可以直接安装ag.vim.ack 的 Silver Searcher fork版本。
作者原图:
在安装了ack或者ag的基础上再安装该插件即可。正如它的名字,它提供了和sublime text 2中Ctrl-Shift-F 一样的搜索效果。和ack或者ag不同的是,不再是显示一行,而是显示整个上下文。非常好用。
除此之外,可以按下p
进行预览,运行:CtrlSFOpen
重新打开搜索结果窗口(默认选择后关闭搜索窗口)。这个插件也是来自国内的朋友。
今天就介绍到这。