2012-08-15 22 views
18

我在計算Vim中的wildignore設置的語法時遇到了很多問題。如何在Vim中使用'wildignore'?

假設我想我的文件搜索器插件(我用Ctrlp,它使用wildignore)無法通過隱藏文件和文件夾搜索,也就是用.前綴的文件和文件夾。

我該怎麼做呢?

回答

4

參見:help file-pattern。基本上,如果你只是想排除任何以點開頭的東西,你可以做.*

+0

你可以鍵入它應該是什麼:wildignore設置... – Fawkes5 2012-08-15 23:41:13

+2

沒關係我想通了,感謝信息。類型集:wildignore + =/home/USERNAME /.* – Fawkes5 2012-08-15 23:47:37

+2

@ Fawkes5:您也可以嘗試':set wildignore + =。*'。 – 2012-08-16 02:02:10

5

關於ctrlp.vimwildignore具體而言,如果鍵入:help ctrlp-options和閱讀了一下,你會發現:

注1:在默認情況下,wildignoreG:ctrlp_custom_ignore只有 申請時globpath()用於掃描文件,因此當使用g:ctrlp_user_command定義的命令使用 時,這些選項 不適用。

因此,您可能需要unlet g:ctrlp_user_command(可能設置爲默認命令)實際使用wildignore。例如,在你的~/.vimrc,添加:

if exists("g:ctrl_user_command") 
    unlet g:ctrlp_user_command 
endif 
set wildignore+=.* 
+1

我曾嘗試添加wildignore,custom_ignore和ctrl_user_command未設置。最後找到了另一個答案@BenC提供了一個類似的問題。 Ctrlp緩存結果,因此一旦找到要忽略的文件,它們仍將顯示,無論放置在wildignore/custom中的內容是否忽略,直到清除ctrlp緩存。 http://stackoverflow.com/questions/21017857/ctrlp-still-searches-the-ignored-directory – Paul 2015-08-28 12:01:37

8

由於BENC指出,Wildignore可能不是如果您使用CtrlP與外部搜索工具,忽略文件的最好方法。相反,你可以使用CtrlP的「custom_ignore」指令,在他們的文檔中闡明:

let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$' 
let g:ctrlp_custom_ignore = { 
    \ 'dir': '\v[\/]\.(git|hg|svn)$', 
    \ 'file': '\v\.(exe|so|dll)$', 
    \ 'link': 'SOME_BAD_SYMBOLIC_LINKS', 
    \ } 
+0

如何分離多個文件模式? – nn0p 2016-11-26 05:51:07

+0

@ nn0p你是什麼意思?擴展是分開的 – JackHasaKeyboard 2017-08-31 16:40:05