Nehmen Sie für mein Repo an, dass es top
Ich möchte mit CtrlP Dateien auflisten, die
sindfoo\
.gitignore
ignoriert, das in top \ definiert ist
Wenn ich in top\foo\
cd und vim von dort öffne, wäre 1 zufrieden aber nicht 2.
Wenn ich vim auf top\
öffne, wäre 2 zufrieden aber nicht 1.
Wie erreiche ich sowohl 1 als auch 2?
Ich habe dieses gitigore vim-Skript ausprobiert, aber es analysiert nur gitignore
, wenn ich es öffne vim im Stammordner eines Repos, also kann ich nicht 1 und 2 zusammen machen.
Das Gleiche gilt für let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
, ag
versucht nicht, zum Repo-Root zu gehen und dort gitigore zu lesen.
Setzen Sie g:ctrlp_working_path_mode
auf r
, lassen Sie CtrlP .gitignore
im obersten Ordner zu, aber alles unter top\
wird mit CtrlP aufgelistet. Ich will nur Dateien in foo\
.
Danke.
Von seiner Startseite sieht es so aus, als könnten Sie
verwenden %Vor%, was den Vorteil hat, dass alle Ignitor-Pattern-Verarbeitungen von git berücksichtigt werden, nicht nur die Toplevel-positiven .gitiginore
-Muster.
Scheint, es gibt keinen offensichtlichen Weg, es zu tun, also folgte ich einfach dem Vorschlag von @kamaradclimber, verbrachte eine Stunde und machte dies: RootIgnore
Niemals zuvor in VimScript codiert, habe ich also einige Zeit gebraucht: -)
Sie können es mit Vundle installieren.
Es sucht rekursiv nach .git
dir, sucht die .gitignore
im selben Verzeichnis wie das .git
Verzeichnis und setzt wildignore
entsprechend.
Aktualisierung:
@ Jthills Methode funktioniert besser als meine
Aber CtrlP verfügt über benutzerdefinierte Suchbefehle, während CommandT dies nicht tut. So kann mein Plugin für CommandT-Benutzer immer noch nützlich sein.