在vim里面使用grep分为internal和external两种方法,internal是vim每个文件load进buffer然后进行查找,而external是联系这系统的grep命令的。
说到grep,那么就必须说一下quickfix list和location list这两个东西了。
quickfix list一般是用来记录在vim里面的编译过程出现错误的东西的一个list。
而location list则是记录一个window里面打开的files的各种位置的一个list。每一个window都对应着一个location list。
在quicklist和location list的命令之间,只有第一个字母不一样。quickfix是c,而location list是l,所以下面就只说明quickfix的命令:
- :clist # 列出所有在quickfix里面的东西,其中第一列显示的就是每个项对应的编号。
- :cc {n} # n是对应的编号,这个就是跳转到对应的quickfix项的编号。
- :cn :lne # 显示下一个quickfix(location list)项。
- :cp # 显示上一个quickfix项。
在vim里面使用internal grep使用下面的命令:
:vim /{pattern}/[g][j] {file} ... # 其中pattern是vim搜索里面用到的那种search pattern,和regexp是不一样的,不过也够用了。
一般的用法: :vim /{patter}/j **/*.cpp # 其中**表示的是在当前目录下递归的往下找目录。