在我的.vimrc文件中,我有两个非常有用的行:
set path=~/nbapp/**
set backupdir=~/nbapp/temp
第一行允许我在我的项目目录和子目录中搜索。第二行使vim在一个特殊的临时文件夹中创建备份文件,而不是通过添加数十个具有完全相同名称的备份文件来打扰我,除了最后的“〜”。但是,由于临时文件仍在'nbapp'文件夹中(并且我希望将它们保留在那里,因为它们与项目相关),这意味着当我进行搜索时它们也会被搜索,这有时会打扰我,因为我一直在查看搜索结果,但却发现它们实际上在临时文件夹中。
有没有办法从搜索中排除路径(即vimgrep)?我想排除'temp'文件夹。
的问候,
Rafid
答案 0 :(得分:22)
使用'wildignore'选项:
:set wildignore+=**/temp/**
或者如果您想更具体:
:set wildignore+=~/nbapp/temp/**
这应该排除nbapp / temp目录中的所有文件:find result。
答案 1 :(得分:5)
我使用grep命令
而不是vimgrep:help grep
我使用设置
set grepprg=grep\ -nIh\ --exclude=tags\ --exclude=cscope.out
当我想搜索文件但排除标记文件和cscope文件时。 你可以修改上面的内容,不要搜索任何以〜结尾的文件。 我不认为你可以使用grep排除文件夹(或者你可以,尝试--exclude =〜/ nbapp / temp / *它可能工作我还没有测试过。)
如果这不起作用,我建议使用ack作为grepprg而不是grep。 ack作为选项ignore-dir = name,您可以在其中明确忽略文件夹。
答案 2 :(得分:2)
从:find
和gf
排除某些目录(例如node_modules
)
你可以设置:
:set path=**
:set wildignore+=*/node_modules/*
答案 3 :(得分:0)
例如在Ubuntu中
sudo apt-get install ack-grep
sudo ln -s /usr/bin/ack-grep /usr/bin/ack
然后安装http://www.vim.org/scripts/script.php?script_id=2572
现在将下一行添加到.vimrc
noremap <C-f> :copen<CR>:Ack --ignore-dir #first_ignore_dir# --ignore-dir #second_ignore_dir# -ai
答案 4 :(得分:-1)
set path-=~/nbapp/temp
是删除路径条目的首选方法,因为它可以保护您免受可能修改“路径”值的vim升级。