活用VIM:全局搜索并跳转

来源:互联网 发布:mysql 修改列默认值 编辑:程序博客网 时间:2024/04/27 17:48

    很多人使用了vim之后,热衷于安装各种各样的插件,折腾的不亦乐乎。但是殊不知vim 本身自带的很多功能也非常的好用,熟练使用他们会使得我们在编程以及解决问题过程中提高不少效率。下面我就介绍第一个好用的技巧。全局搜索vim 命令。

先举个栗子:比如我想在当前目录搜索字符串 “test1”。你可以使用grep -R test1 *  这样虽然可以搜索出结果,但是你只能看到这个字符串都在哪个文件哪里包含,不能快速跳转到这个字符串包含的文件中,但是vim 就有这样的功能。

在vim的命令模式输入如下命令:vim /test1/ ** | copen  如下就递归找出了在当前目录下所有包含test1 字符串的文件,并且点击想查看的那行就直接能跳转到这个文件包含test1的位置中去。如下我想在u-boot 源码中查找所有包含main 字符串的文件

:vim /main/ ** | copen


如上,所有包含main 字符串的文件全部列出,并且点击想要想看的一行就直接跳转到这个文件相应行中,非常方便。上个例子是当前目录递归搜索所有。这个命令还有很多变种用法:以下都是搜索main,  如果搜索其他字符串请替换.

1. 只搜索当前文件 vim /main/ % | copen

2. 只搜索当前目录 vim /main/ * | copen

3.  搜索上级目录下,并递归 vim /main/ ../** | copen

4. 可以在多个路径中搜索  vim /main path1/** path2/** | copen

如上的用法可以搭配ctags来查看source code,非常实用。其实上述的命令就是vimgrep,简写vim。使用 | 连接copen 命令把quickfix打开,vimgrep的结果就记录在quickfix中。可以查看更过vimgrep的用法:h vimgrep



原创粉丝点击