Das Vim Ctrlp-Plugin kann bestimmte Ordnernamen global ignorieren. Z.B:
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
Ich habe jedoch eine projektspezifische Ignorierregel. Ich hätte gerne etwas Ähnliches wie eine .gitignore
Akte.
Gibt es eine Möglichkeit, einen bestimmten Ordner in einem bestimmten Projekt zu ignorieren, ohne meine globale Konfiguration zu ändern?
Antworten:
Verwenden Sie einen benutzerdefinierten Auflistungsbefehl
Mit Strg können Sie festlegen, mit welchem Befehl eine Liste der Dateien im Ordner abgerufen werden soll. Wenn Sie also einen Namen ausschließen möchten
beets.txt
, können Sie Folgendes tun:Das ist global, aber es deutet auf die Antwort hin: Geben Sie Ihren eigenen Shell-Befehl an.
Noch besser ist, dass Sie mit Strg mehrere Shell-Befehle mit Markierungen versehen können. Dies bedeutet: "Wenn Sie diese Markierung im Stammverzeichnis sehen, verwenden Sie diesen Befehl."
Ich fand dies in
:help ctrlp
und änderte es leicht, basierend auf dem Kommentar des Autors zu einem Problem.Dies bedeutet: "Wenn Sie
.git
in dem Ordner sehen, verwenden Siegit ls-files...
. Andernfalls verwenden Sie, wenn Sie sehen.hg
,hg --cwd...
ein reguläresfind
."Also, einen bestimmten Ordner in einem Projekt zu ignorieren, einen Befehl entwickeln , die diesen Ordner ignorieren, legen Sie dann eine eindeutige Markierung in diesem Projekt Ctrlp zu lassen , dass Sie Ihren speziellen Befehl hier verwenden mögen .
(In meinem Fall wollte ich eigentlich die darin enthaltenen Dateien ignorieren
.gitignore
, sodass dergit ls-files
obige Befehl für mich funktioniert.)quelle
Wenn Sie das Silver Searcher-Backend für CtrlP verwenden (das viel schneller ist), fügen Sie
.agignore
Ihrem Projektverzeichnis einfach eine Datei im folgenden Format hinzu.gitignore
:Alternativ können Sie eine globale
~/.agignore
Datei behalten .Fügen Sie den Silver Searcher als Backend hinzu
.vimrc
quelle
if executable("ag") let g:ctrlp_user_command = 'ag %s -l --nocolor --depth 8 -g ""' endif
. Die Tiefenbegrenzung ist nützlich, wenn ich versehentlich Strg-P drücke, während ich eine Datei in meinem Ausgangsordner bearbeite. Ich fand, dass die versteckte Flagge Dateien in .git /Gibt absichtlich nicht verfolgte Dateien in einer Datei an
Um dies mit einer Datei wie
.gitignore
(basierend auf der Nathan grep-Lösung) zu lösen , habe ich eine Datei mit dem Namen erstellt.ctrlpignore
und die zu ignorierenden Muster durch Linien getrennt:Und meine CTRLP-Konfiguration:
Vielleicht
.gitignore
kann das Programm verwendet werden, um die Dateien in ctrlp zu ignorieren, ohne dass eine neue Datei erstellt werden muss, um fast dasselbe zu tun.quelle
Wie Wagner Andrade sagte,
.ctrlpignore
wäre es eine gute Idee , ein separates zu verwenden.Eine robustere und bequemere vim-Einstellung sieht folgendermaßen aus:
.ctrlpignore
Kann in jedes Verzeichnis gestellt werden, das von ctrlp als Root-Verzeichnis erkannt wird. Hier ist ein Beispiel, mit dem jede Zeile beginnt./
vim ~/.ctrlpignore
Hinweis:
grep -F
wird Muster interpretieren, z. './.tmp', als feste Zeichenfolge, wenn Sie nicht möchten, dass Ihre './ptmp' herausgefiltert werden. Es gibt noch einige kleine Fehler: './.tmp' filtert auch './.tmp2' heraus. Vergiss es, ich mag es nicht\.
g:ctrlp_custom_ignore
wird ignoriert, wenng:ctrlp_user_command
gesetzt. Diese könnten komplexer gestaltet werdeng:ctrlp_user_command
White-List statt Black-List ist ebenfalls möglich. Bequemer, wenn in einem separaten Skript implementiert
quelle