2012-08-15 7 views
18

Ich habe viel Mühe beim Ermitteln der Syntax für die wildignore Einstellung in Vim.Wie verwende ich 'Wildignore' in Vim?

nehme ich meine Datei-Finder-Plugin will (ich benutze Ctrlp, die wildignore verwendet) nicht durch versteckte Dateien und Ordner zu suchen, das heißt, Dateien und mit einem . Präfix Ordner.

Wie würde ich das machen?

Antwort

4

Siehe :help file-pattern. Wenn Sie einfach alles ausschließen möchten, das mit einem Punkt beginnt, können Sie .* tun.

+0

Können Sie genau geben, was es sein sollte: set wildignore ... – Fawkes5

+2

Nevermind ich es herausgefunden, danke für die Info. Geben Sie set: wildignore + =/home/BENUTZERNAME /. * – Fawkes5

+2

@ Fawkes5: Sie können auch versuchen, ': set wildignore + =. *'. –

5

Bezüglich ctrlp.vim und wildignore speziell, wenn Sie :help ctrlp-options und lesen ein wenig geben, finden Sie:

Hinweis # 1: standardmäßig wildignore und g: ctrlp_custom_ignore nur gelten, wenn globpath() wird verwendet, um nach Dateien zu suchen, daher gelten diese Optionen nicht, wenn ein mit g: ctrlp_user_command definierter Befehl verwendet wird .

So können Sie unlet g:ctrlp_user_command (möglicherweise auf einen Standardbefehlssatz) müssen tatsächlich wildignore verwenden. Zum Beispiel in Ihrem ~/.vimrc hinzu:

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

Ich hatte versucht, wildignore, custom_ignore und der ctrl_user_command wurde nicht gesetzt. Endlich fand die andere Antwort @BenC zu einer ähnlichen Frage. Der Ctrlp-Cache speichert die Ergebnisse. Wenn Sie also Dateien gefunden haben, die Sie ignorieren möchten, werden sie trotzdem angezeigt, unabhängig davon, was Sie in die Wildignore/Custom-Ignorierung eingeben, bis der Ctrlp-Cache gelöscht ist. http://StackOverflow.com/Questions/21017857/ctrlp-still-searches-the-ignored-directory – Paul

8

Wie BenC wies darauf hin, Wildignore nicht der beste Weg sein können, Dateien zu ignorieren, wenn Sie CtrlP mit einem externen Suchwerkzeug verwenden. Stattdessen können Sie CtrlP die „custom_ignore“ Direktive verwenden, wie sie in ihrer docs angegeben:

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

Wie kann ich mehrere Dateimuster trennen? – nn0p

+0

@ nn0p Was meinst du? Die Erweiterungen sind getrennt – JackHasaKeyboard