Search Vim:忽略搜索中的特殊路径

Search Vim:忽略搜索中的特殊路径,search,vim,findinfiles,Search,Vim,Findinfiles,在我的.vimrc文件中,有两行非常有用: set path=~/nbapp/** set backupdir=~/nbapp/temp 第一行允许我在项目目录和子目录中搜索。第二行让vim在一个特殊的临时文件夹中创建备份文件,而不是通过添加几十个备份文件来打扰我,这些文件的名称完全相同,只是末尾有一个“~”。但是,由于临时文件仍在“nbapp”文件夹中(我想将它们保留在那里,因为它们与项目相关),这意味着在我进行搜索时也会对它们进行搜索,这有时会让我感到不安,因为我一直在查看搜索结果,但却发


在我的.vimrc文件中,有两行非常有用:

set path=~/nbapp/**
set backupdir=~/nbapp/temp
第一行允许我在项目目录和子目录中搜索。第二行让vim在一个特殊的临时文件夹中创建备份文件,而不是通过添加几十个备份文件来打扰我,这些文件的名称完全相同,只是末尾有一个“~”。但是,由于临时文件仍在“nbapp”文件夹中(我想将它们保留在那里,因为它们与项目相关),这意味着在我进行搜索时也会对它们进行搜索,这有时会让我感到不安,因为我一直在查看搜索结果,但却发现它们实际上在临时文件夹中

是否有任何可能的方法从搜索中排除路径(即vimgrep)?我想排除“临时”文件夹

问候,
拉菲德


是删除路径项的首选方法,因为它可以防止可能修改“path”值的vim升级。

我使用grep命令代替vimgrep

:help grep
我使用这个设置

set grepprg=grep\ -nIh\ --exclude=tags\ --exclude=cscope.out
当我想搜索文件但不包括标记文件和cscope文件时。 您可以修改以上内容,不搜索任何以~结尾的文件。 我认为您不能使用grep排除该文件夹(或者您也可以尝试--exclude=~/nbapp/temp/*它可能会工作,我还没有测试它)

如果这不起作用,我建议对grepprg使用ack而不是grep。
ack as option ignore dir=可以显式忽略文件夹的名称。

使用“wildignore”选项:

:设置wildignore+=**/temp/**

或者,如果您想更具体一些:

:设置wildignore+=~/nbapp/temp/**


这应该排除:find result中nbapp/temp目录中的所有文件。

例如在Ubuntu中

sudo apt-get install ack-grep

sudo ln -s /usr/bin/ack-grep /usr/bin/ack
然后安装

现在将下一行添加到.vimrc

noremap <C-f> :copen<CR>:Ack --ignore-dir #first_ignore_dir# --ignore-dir #second_ignore_dir# -ai 
noremap:copen:Ack--ignore dir#first#u ignore#u dir#--ignore dir#second#u ignore#-ai
  • 通过Ctr+F打开搜索框,玩得开心

中排除一些dir:查找
gf
(例如
节点模块
) 您可以设置:

:set path=**
:set wildignore+=*/node_modules/*

这似乎不起作用!它仍然向我显示备份文件。我正是在寻找这个,因为在:查找搜索中忽略生成文件夹。谢谢在vim 7.4中为我工作的grep的最新版本也有
--ignore dir
,这可能正是您想要的。为了不破坏quickfix窗口,最好是
设置grepprg=grep \-n \-exclude=tags \-exclude=cscope.out\$*\/dev/null
显然您从未听过@WayneWerner我没有收到您的评论。就在两年前:)我现在很困惑,我当时到底是什么意思:D
:set path=**
:set wildignore+=*/node_modules/*