vimgrep 全局搜索

    一个开发项目是有很多文件构成的,在 IDE 中都有全局搜索的功能,在 Vim 中我们还没有提及这个问题。我见过很多人使用 Vim 都是单文件编辑,然后通过记忆文件名退出进入。不是不行,但总感觉很不方便,尤其是我想要知道某个关键词在哪些文件中出现的时候。

    在 Linux 系统中搜索文本内容通常使用 命令,而 Vim 中有 vimgrep 命令。

    vimgrep 是直接在 command 模式中使用的,它可以查找当前目录下文件中包含关键词的行,默认自动跳转到第一个符合目标的位置,就像预览中演示的那样。

    • ! 可紧随 vimgrep 之后,表示强制执行该命令
    • 索引的关键字 pattern 放在了两个 / 中间,并且支持正则表达式
    • g, j 可选。 如果添加 ,将显示重复行, 如果添加 jVim 将不会自动跳转到第一个匹配的行(可能是别的文件)

    使用该命令可以查找当前目录下所有文件中包含 user 字符串的文件,并跳转到第一个匹配的文件,同时所有搜索结果会显示在 Quickfix 中,使用 :cw, :copen 可以打开该列表

    lvimgrepvimgrep 搜索命令基本一样,不同点在于搜索结果不是显示在 Quickfix 中而是显示在 location-list

    是全局的,相对于窗口而言,不同的窗口共用一个 quickfix list,可以使用 :cw 或者 :copen 打开;而 loaction list 是局部于某个特定窗口的,即不同窗口的 location list 可以不同,使用 :lw 或者 :lopen 命令打开。(请使用 :help quickfix:help location-list命令获取帮助)

    2018-05-05 发布