2014-01-09 13 views
12

Ich habe versucht, ignoriert Einstellung in .vimrc zu setzenctrlp sucht immer noch das ignoriert Verzeichnis

Aber wenn ich die ctrlp verwendet unter suchen Schienen app Ordner

Es ist immer noch die vendor Ordner suchen, so dass es viele nahm von Zeit.

Aber wenn die Suche fertig war, konnte ich nichts unter dem Es war so seltsam vendor

suchen! Wie man es repariert.

Hier ist meine .vimrc Einstellungsdatei.

http://d.pr/i/yMtK http://d.pr/i/Hy4u

" Sane Ignore For ctrlp 
let g:ctrlp_custom_ignore = { 
    \ 'dir': '\.git$|vendor\|\.hg$\|\.svn$\|\.yardoc\|public\/images\|public\/system\|data\|log\|tmp$', 
    \ 'file': '\.exe$\|\.so$\|\.dat$' 
    \ } 

Wenn ich den Code in dem Ende der .vimrc

beigefügten
217 let g:NERDTreeIgnore=['\~$', 'vendor'] 
218 set wildignore+=*\\vendor\\** 

Es funktionierte, als ich zum ersten Mal die CTRLP verwenden unter den RAILS App-Ordnern suchen, Aber immer noch funktioniert NOT in den folgenden Zeiten.

ich vielleicht denke, es gibt einige Einstellungen, die ignoriert Einstellung deaktivieren?

Hier sind die Struktur meiner Ordner

. 
├── Gemfile 
├── Gemfile.lock 
├── README.rdoc 
├── Rakefile 
├── app 
│   ├── assets 
│   ├── controllers 
│   ├── helpers 
│   ├── mailers 
│   ├── models 
│   ├── uploaders 
│   ├── views 
│   └── workers 
├── auto.sh 
├── config 
│   ├── application.rb 
│   ├── application.yml 
│   ├── boot.rb 
│   ├── database.yml 
│   ├── environment.rb 
│   ├── environments 
│   ├── initializers 
│   ├── locales 
│   ├── macbookair_whenever_schedule.rb 
│   ├── menu_navigation.rb 
│   ├── navigation.rb 
│   ├── resque.god 
│   ├── resque_schedule.yml 
│   ├── routes.rb 
│   ├── schedule.rb -> ubuntu_whenever_schedule.rb 
│   ├── tinymce.yml 
│   └── ubuntu_whenever_schedule.rb 
├── config.ru 
├── db 
│   ├── development.sqlite3 
│   ├── migrate 
│   ├── migrate_should_be_skip 
│   ├── production.sqlite3 
│   ├── schema.rb 
│   └── seeds.rb 
├── doc 
│   └── README_FOR_APP 
├── lib 
│   ├── assets 
│   ├── auto_tools 
│   ├── tasks 
│   └── url_automation_module.rb 
├── log 
│   ├── apalog 
│   ├── development.log 
│   ├── passenger.80.log 
│   ├── production.log 
│   └── prodution.log 
├── output_name 
├── public 
│   ├── 404.html 
│   ├── 422.html 
│   ├── 500.html 
│   ├── exports 
│   ├── favicon.ico 
│   ├── results.zip 
│   ├── robots.txt 
│   ├── sandbox 
│   └── uploads 
├── script 
│   ├── delayed_job 
│   └── rails 
├── test 
│   ├── fixtures 
│   ├── functional 
│   ├── integration 
│   ├── performance 
│   ├── test_helper.rb 
│   └── unit 
├── test.sh 
├── tmp 
│   ├── cache 
│   ├── pids 
│   ├── restart.txt 
│   ├── sessions 
│   └── sockets 
├── tmplog 
└── vendor 
    └── bundle 
+1

Ich sehe nicht 'vendor' in Ihrer dir ignorieren Liste ...... – Kent

+0

Verwenden Sie ein Plugin, das Aufmerksamkeit auf' g: ctrlp_custom_ignore'? Im einfachen vim hat das Setzen einer solchen globalen Variable keine Auswirkung. – benjifisher

+0

könnten Sie die Ausgabe von 'tree' oder' find.' in dem Verzeichnis geben, in dem Sie vim inside anrufen? Wir wissen nicht, wie Ihre Ordner und Dateieinstellungen aussehen, und das wäre hilfreich, um eine Idee zu bekommen. Im Idealfall würden Sie uns hier die volle Ausgabe geben: https://asciina.org/ –

Antwort

4

können Sie verwenden, um die wildignore vim Einstellung, die CtrlP auf abholen.

set wildignore+=*\\vendor\\** 
+0

Hi Ihre Einstellung funktionierte nur beim ersten Mal, als ich 'CtrlP' ausgeführt habe, und in den folgenden Zeiten nicht funktioniert hat. Ich habe keine Ahnung, das müssen meine Probleme sein. – newBike

21

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 ist benutzt.

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

if exists("g:ctrlp_user_command") 
    unlet g:ctrlp_user_command 
endif 
set wildignore+=*\\vendor\\** 

Danach müssen Sie Ihren ctrlp Cache aktualisieren: in Vim, F5 in ctrlp Modus drücken oder :CtrlPClearAllCaches ausführen oder das Cache-Verzeichnis direkt entfernen in Ihrem Shell:

rm -r ~/.cache/ctrlp/  # On Linux 
+0

Das Hinzufügen gibt mir '' 'E108: Keine solche Variable:" g: ctrlp_user_command "' '' –

+0

@IanVaughan: ist dein 'ctrlp'-Plugin auf dem neuesten Stand? Dies wurde in meinem Fall auf einen Standardwert gesetzt, aber wenn dies nicht der Fall ist, muss ein Wächter hinzugefügt werden. Überprüfen Sie meine aktualisierte Antwort. – BenC

+0

Das Löschen des Caches ist wichtig, wenn Sie bereits Dateien gefunden haben, die Sie ausschließen möchten, und versuchen, sie anschließend auszuschließen. – Paul

13

Teil meiner .vimrc-Datei.vielleicht wird es

set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.idea/*,*/.DS_Store,*/vendor 
2

überprüfen helfen, wenn Sie einigen spezifischen Suchbefehl verwenden, wie:

let g:ctrlp_user_command = 'find %s -type f'  " MacOSX/Linux 
let g:ctrlp_user_command = 'dir %s /-n /b /s /a-d' " Windows 

Diese Art der Konfiguration ignoriert die g:ctrlp_custom_ignore Option.

Verwandte Themen