技巧111-使用Vim内置的正则表达式引擎的Grep

  • 使用:vimgrep命令让Vim在所有文件中查找单词。
  • :vimgrep命令会把所有包含匹配项的行加入quickfix列表。
  • 然后可以用:cnext,:cprev 浏览这些结果。
:vimgrep /going/ clock.txt tough.txt where.txt
:cnext
  • 模式域后加上g标志,:vimgrep就把所有匹配此模式的地方都列出来,而不仅仅时首处匹配。
:vimgrep /going/g clock.txt tough.txt where.txt

指定查找哪些文件

  • 使用通配符*
:vim /going/g *.txt
  • 除了使用*和**通配符外还可以用##符号
  • 表示参数列表中的所有文件;

  • 可以先把希望查找的文件加入参数列表;
  • 然后在参数列表中的所有文件上运行:vimgrep。
:args *.txt
:vim /going/g ##

先在文件内查找,再扩大到整个工程

  • 查找don't或 Don't
/[Dd]on't
:vim //g *.txt

查找历史与:vimgrep的关系

  • 用当前查找模式在参数列表的文件中查找
:vim //g ##
  • 另外一种查找
  • 如果想再次执行同一条:vimgrep命令,上述命令将很有用,因为它会把模式保存到命令历史中。
:vim /<C-r>//g ##