2010-11-28 154 views
15


在我的.vimrc文件中特殊的路徑,我有兩個非常有用行:的Vim:忽略搜索

set path=~/nbapp/** 
set backupdir=~/nbapp/temp 

第一行讓我在我的項目目錄和子目錄搜索。第二行使vim在一個特殊的臨時文件夾中創建備份文件,而不是在最後添加幾十個備份文件,這些備份文件具有完全相同的名稱,除了'〜'外。但是,由於臨時文件仍在'nbapp'文件夾中(因爲它們與項目有關,我想將它們留在那裏),這意味着它們在搜索時也將被搜索,這有時會干擾我,因爲我一直在查看搜索結果,但發現它們實際上在臨時文件夾中。

是否有任何可能的方法排除搜索路徑(即vimgrep)?我想排除'temp'文件夾。

問候,
Rafid

回答

-1
set path-=~/nbapp/temp 

是除去路徑條目的優選方法,因爲它守衛你針對VIM升級,這可能會修改「路徑」的值。

+2

這似乎並沒有工作!它仍然顯示備份文件。 – Rafid 2010-11-29 18:52:03

4

而是使用vimgrep我使用grep命令

:help grep 

我使用的設置

set grepprg=grep\ -nIh\ --exclude=tags\ --exclude=cscope.out 
當我要搜索文件,但不包括該標籤的文件和文件cscope的

。 您可以修改上述內容,以便不搜索以〜結尾的任何文件。 我不認爲你可以使用grep排除文件夾(或者你也可以嘗試--exclude =〜/ nbapp/temp/*它可能工作,我還沒有測試過)。

如果這不起作用,我推薦使用grepprg而不是grep來使用ack。 ack as a option ignore-dir =名稱,您可以在其中顯式忽略文件夾。

+0

grep最近的版本也有`--ignore-dir`,這可能就是你正在尋找的東西。 – Magnus 2013-03-18 16:09:29

+1

爲了不打破quickfix窗口會更好`設置grepprg = grep \ -n \ --exclude =標籤\ --exclude = cscope.out \ $ * \/dev/null` – 2015-01-26 15:29:53

17

使用選項 'wildignore':

:set wildignore+=**/temp/**

,或者如果您想更具體:

:set wildignore+=~/nbapp/temp/**

這應該exlude在nbapp/temp目錄下的所有文件在:查找結果。

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 
  • 按Ctr + F其開放搜索框,有樂趣
1

:findgf排除一些目錄(例如node_modules) 您可以設置:

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