STRG-P sehr langsam, wenn keine Dateien gefunden werden


7

Manchmal schreibe ich den Namen einer Datei falsch. Nehmen wir also an, ich habe eine Datei mit dem Namen ThisIsAFileNameund beginne zu tippen. ThisS...Sobald ich den Dateinamen falsch schreibe (und es gibt überhaupt keine Treffer), wird STRG-P unglaublich langsam. Jeder nächste Buchstabe wird alle 5 Sekunden mit einer Geschwindigkeit von etwa 1 Zeichen angezeigt. Wenn ich also versehentlich 6 zusätzliche Zeichen eingebe, warte ich eine halbe Minute, bis STRG-P die Anzeige dieser Zeichen beendet hat, bevor ich dies rückgängig machen kann.

Passiert das regelmäßig? Irgendeine Idee, wie man das behebt?


Ich
stehe

Ich stecke immer noch in der gleichen Situation. Ich versuche, nicht falsch zu buchstabieren, was mein aktueller "Fix" ist, aber wenn es einen besseren Fix gibt, bin ich ganz Ohr.
user32421

2
Ich fand diesen Artikel von Doug sehr nützlich. Es hat einen Abschnitt über CtrlP. Zitat aus dem Artikel> Wir können CtrlP jedoch anweisen, einen externen Befehl auszuführen, um passende> Dateien zu finden. Nachdem wir ag installiert haben, können wir es mit CtrlP verwenden, um> CtrlP schnell böse zu machen. Obwohl ich selbst nicht versucht habe, ag zu verwenden, scheint es etwas zu sein, das es wert ist, ausprobiert zu werden.
RIQ

Strg P ist alt, versuchen wir mal fzf, die Leistung ist deutlich schneller.
Finn

Ich verwende es mit ag unter Windows (was beim Erkennen und Auflisten von Dateien erheblich langsamer ist als Linux) mit guten Ergebnissen. Es ist nicht sofort, aber gut genug, um Dateien nahtlos zu finden.
Spidey

Antworten:


1

Sie können das Caching aktivieren, sofern es noch nicht aktiviert ist:

let g:ctrlp_use_caching = 1

Es reduziert die Verzögerung erheblich und ist ideal, wenn es nicht viele Änderungen im Verzeichnis gibt, dh nicht viele neue oder gelöschte Dateien. Wenn jedoch Dateien hinzugefügt oder entfernt oder umbenannt werden, wird der Dateiindex veraltet und muss durch Drücken von ctrl+pund dann F5(oder alternativ Aufrufen :CtrlPClearCacheim Befehlsmodus) aktualisiert (dh neu indiziert) werden .

Ich bevorzuge die Verwendung einer schnelleren externen App für die Dateisuche und muss mich überhaupt nicht mit dem Caching befassen. Ich empfehle entweder Ag (The Silver Searcher) oder ripgrep . Sie sind deutlich schneller als die integrierte Suchmaschine von ctrl-p, und das Umschalten der Engine ist sehr einfach.

Ag oder Ripgrep müssen zuerst installiert werden. Und dann .vimrcfüge ich Folgendes hinzu.

Bei Verwendung von ripgrep:

if executable('rg')
    let g:ctrlp_user_command = 'rg %s --files --color=never --glob ""'
    let g:ctrlp_use_caching = 0
endif

Bei Verwendung von ag:

if executable('ag')
  let g:ctrlp_user_command = 'ag -l --nocolor -g "" %s'
  let g:ctrlp_use_caching = 0
endif
  • Unter Windows scheint Ag langsamer zu sein, und ich empfehle Ripgrep anstelle von Ag.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.