首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在vimgrep中排除文件模式?

如何在vimgrep中排除文件模式?
EN

Stack Overflow用户
提问于 2009-12-14 12:49:31
回答 3查看 11.5K关注 0票数 29

在vim中,我经常使用vimgrep进行搜索。我有如下的映射:

代码语言:javascript
复制
map <leader>s :execute "noautocmd vimgrep /\\<" . expand("<cword>") . "\\>/gj **/*.*" <Bar> 
cw<CR> 5

问题是有一些临时子文件夹(如obj、objd)是我不想搜索的。如何排除与给定模式匹配的子文件夹。例如,搜索中不应包括前缀为"objd“的子文件夹。

EN

回答 3

Stack Overflow用户

发布于 2013-11-18 15:09:57

从Vim 7.3.570开始,您可以使用wildignore来排除带有vimgrep的模式。

例如,要忽略objd子文件夹:

代码语言:javascript
复制
:set wildignore+=objd/**

可以通过用逗号分隔模式来添加其他排除项:

代码语言:javascript
复制
:set wildignore+=objd/**,obj/**,*.tmp,test.c

有关更多详细信息,请参阅Vim的帮助文档。

代码语言:javascript
复制
:help wildignore
票数 34
EN

Stack Overflow用户

发布于 2019-12-31 20:18:09

http://vimcasts.org/blog/2013/03/combining-vimgrep-with-git-ls-files/所示,您可以包含要搜索的文件,而不是排除文件。这样你就可以在Git跟踪的文件中搜索

代码语言:javascript
复制
:noautocmd vimgrep /{pattern}/gj `git ls-files`

我经常使用它,我为此创建了一个命令,所以我只需要

代码语言:javascript
复制
:Sch {pattern}

我将下面这行代码添加到我的.vimrc中

代码语言:javascript
复制
command -nargs=1 Sch noautocmd vimgrep /<args>/gj `git ls-files` | cw

这样,您就不会搜索.gitignore中声明的文件。

票数 13
EN

Stack Overflow用户

发布于 2009-12-16 00:17:27

您可以尝试使用ack。它与vim很好地集成在一起,并且有很多选项可以做你想做的事情。

在GitHub上有几个ack-vim集成。例如:here

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1898987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档