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/*