Vim在文件夹中搜索文本



有没有办法在文件夹中搜索某些文本并在 Vim 中的单独缓冲区中显示搜索结果?(如崇高文本Ctrl + Shift + F结果)

不,你不需要任何插件。默认:vimgrep(或:vim)就是您所需要的

在当前目录中的每个文件中搜索foo

:vim foo * | cw

在当前目录的每个 JavaScript 文件中搜索foo

:vim foo *.js | cw

递归地搜索当前目录下每个 JavaScript 文件中的foo

:vim foo **/*.js | cw

在当前目录的每个文件中搜索当前单词:

:vim <C-r><C-w> * | cw
:vim <cword> * | cw

(编辑:使用:cw[indow]而不是:copen

听起来你需要ack.vim

这个插件是Perl模块App::Ack的前面。 Ack可以用作99%的grep使用的替代品。这个插件将允许你从vim运行ack,并在一个拆分窗口中显示结果。

用法:

:Ack [options] {pattern} [{directory}]
Search recursively in {directory} (which defaults to the current directory) for the {pattern}.

包含搜索词的文件将在拆分窗口中列出,以及出现的行号,每次出现一次。[Enter] 在此窗口中的一行上将打开文件,并将光标放在匹配的行上。

:grep Vim 命令将搜索委托给外部grep工具(或通过 'grepprg' 设置的兼容替代方案,如 ack )。或者,您可以使用 :vimgrep ,它在 Vim 中执行搜索。这允许使用相同的 Vim 样式正则表达式和 glob 模式(如 **/ ),但通常速度较慢,因为每个文件都被读入 Vim 缓冲区。

这两个命令都会在快速修复窗口中显示结果,您可以从中导航到匹配项。

您不需要任何插件,尽管有几个可用的插件试图简化处理或支持不同的搜索命令(例如已经提到的ack.vim)。

相关内容

  • 没有找到相关文章

最新更新