CtrlP: Ignoriere Dateien im Unterverzeichnis innerhalb eines Git Repos

8

Nehmen Sie für mein Repo an, dass es top

heißt %Vor%

Ich möchte mit CtrlP Dateien auflisten, die

sind
  1. Unter foo\
  2. Wird nicht von .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.

    
octref 01.11.2014, 20:52
quelle

2 Antworten

10

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.

    
jthill 04.11.2014, 06:39
quelle
1

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.

    
octref 03.11.2014 01:21
quelle

Tags und Links