【vim 学习系列文章 15.2 -- vim vimgrep 使用详细介绍】

vimgrep 使用详细介绍

vimgrep 是 Vim 中的一个强大工具,用于在文件中搜索模式并将匹配项加载到快速修复列表(quickfix list)。你可以使用它来在一个或多个文件中查找特定的模式,然后快速导航到这些匹配项。以下是 vimgrep 的详细介绍及使用示例。

vimgrep 基本用法

:vimgrep /pattern/ [files]
  • pattern:要搜索的正则表达式模式。
  • files:要搜索的文件,可以是一个或多个文件,甚至是通配符表示的文件集。

vimgrep 在当前文件中搜索

假设你要在当前文件中搜索包含 example 这个词的行:

:vimgrep /example/ %
  • % 表示当前文件。

vimgrep 在多个文件中搜索

假设你有多个文件,并且想在这些文件中搜索包含 example 这个词的行。例如,你想在当前目录下的所有 .txt 文件中搜索:

:vimgrep /example/ *.txt

vimgrep 在递归目录中搜索

你也可以在递归目录中搜索。例如,搜索当前目录及其子目录下的所有 .c.h 文件:

:vimgrep /example/ **/*.c **/*.h

vimgrep 加载搜索结果到快速修复列表

vimgrep 的结果会自动加载到快速修复列表中,你可以使用以下命令进行导航:

  • 打开快速修复列表窗口:
    :copen
    
  • 关闭快速修复列表窗口:
    :cclose
    
  • 跳转到下一个匹配项:
    :cnext
    
  • 跳转到上一个匹配项:
    :cprev
    

vimgrep 结合映射快捷键使用

你可以为常用的 vimgrep 操作设置快捷键。例如,为了在当前文件中查找包含光标下单词的行并打开快速修复列表,你可以在 ~/.vimrc 中添加以下映射:

nnoremap <leader>g :execute 'vimgrep /' . expand('<cword>') . '/' . ' %' <bar> copen<CR>

这样,你可以在 Vim 中按 <leader>g(通常是 \g)来执行搜索并打开快速修复列表。

vimgrep 在整个项目中搜索

假设你正在处理一个项目,并且想在项目的所有文件中搜索 function_name,你可以使用以下命令:

:vimgrep /function_name/ **/*

vimgrep 仅搜索特定类型的文件

假设你只想在项目中的 Python 文件中搜索 function_name,可以使用以下命令:

:vimgrep /function_name/ **/*.py

vimgrep 与 quickfix

:vim 搜索在 quickfix 中显示结果,运行搜索命令后,运行 :copen 打开 quickfix 窗口。
这里有一些有用的 quickfix 命令:

:copen        打开快速修复窗口
:cclose       关闭 quickfix 窗口
:cnext        转到下一个位置
:cprevious    转到上一个位置

Summary

vimgrep 是 Vim 中一个非常强大的工具,适用于在一个或多个文件中搜索模式。它将搜索结果加载到快速修复列表中,便于快速导航和查看。通过结合映射和其他 Vim 命令,vimgrep 可以极大地提升你的搜索和编辑效率。

" 示例:在当前文件中搜索 'example' 并打开快速修复列表
:vimgrep /example/ % | copen

通过以上方法,你可以在 Vim 中灵活使用 vimgrep 来满足各种搜索需求。

推荐阅读
https://zhuanlan.zhihu.com/p/597098123

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主公CodingCos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值