vim基础学习之搜索功能

当我们使用vim看源码的时候,我们可能会碰到一个方法或者变量,我们想要知道这个变量在其他地方的使用情况。这时候我们经常的做法就是退出当前的文件,或
者是重新切换一个终端,然后使用grep或者find等shell命令进行搜索。其实,我们完全可以在不离开文件的情况下,在vim的命令行中进行搜索。

vim内部搜索有两种方式,一直就是调用外部的搜索工具进行搜索grep。另外一种就是自带的内部搜索vimgrep
其中,grep允许我们就行设置,从而可以自主选择我们希望使用的搜索工具以及搜索结果样式。例如

我们可以通过在vimrc中添加如下内容,来把ack作为grep默认的搜索工具

set grepprg=ack --nogroup $*


当然,你不要忘了配置ack的链接,如下

sudo ln -s /usr/bin/ack-grep /usr/local/bin/ack

我们可以通过如下方法设置搜索结果样式

set grepformat=%f:%l:%c:%m
%f:文件名
%l:行号
%c:列号
%m:匹配行的文本


除了上述的外部搜索命令,vim还支持内部搜索命令,vimgrep。它其实就跟grep差不多。

这些搜索命令,我们使用以后,主要的就是生成一个搜索列表,这个搜索列表会保存在quickfix中,我们只要调出这个窗口,我们就可以很方便的查看搜索结果并>能跳转到搜索结果了。

原文地址:https://www.cnblogs.com/zhangshuli-1989/p/hq_15_12_18_01_40.html