VIM ctrlp.vim Plugin: Wie scanne ich Dateien erneut?

152

Ich bin auf das fantastische Plugin ctrlp.vim gestoßen . Es ist eine gute Alternative zu dem Command-T-Plugin, das ich zuvor verwendet habe. Was mir an Command-T nicht gefallen hat, ist, dass das erneute Scannen von Dateien etwa 20 bis 30 Sekunden dauern würde, wenn es nach dem Start von vim zum ersten Mal aufgerufen wird.

CtrlP arbeitet viel schneller, scheint jedoch nicht automatisch nach neu erstellten Dateien zu suchen. Wie soll ich einen Rescan manuell auslösen?

Vielen Dank!

ko1Rn
quelle
3
Dies wird in der Dokumentation sehr deutlich beantwortet.
Mark Wilden

Antworten:

283

Aus der Dokumentation :

<F5>
  - Refresh the match window and purge the cache for the current directory.
  - Remove deleted files from MRU list.

Dies setzt voraus, dass Sie sich bereits im Strg-P-Modus befinden. Beachten Sie, dass Sie F5 mitten in einer Abfrage drücken können, dh Sie können einige Zeichen eingeben, feststellen, dass es nicht mit einer kürzlich aktualisierten Datei übereinstimmt, und F5 drücken, um sofort zu aktualisieren. Es zeigt Ihnen automatisch die Übereinstimmung an, wenn die Datei gerade zum Strg-P-Cache hinzugefügt wurde.

Jeet
quelle
105
Beachten Sie, dass dies im STRG-P-Modus erfolgen muss. Also, 1. ctrl-p2.F5
David Kay
1
Funktioniert fast für mich, ich sehe es aktualisiert, aber es findet keine neu hinzugefügten Dateien
xer0x
1
@ xer0x Stellen Sie sicher, dass Sie sich im richtigen CWD befinden. Hatte das gleiche Problem bei der Verwendung von NERDTree.
jsbeckr
9
Nur um hinzuzufügen, können Sie nicht nach Ihrer eigenen Datei suchen, während Sie sie gerade bearbeiten.
Daryll Santos
58

Wie Jeet sagt, können Sie drücken, F5aber wenn das nicht funktioniert, können Sie immer laufen :CtrlPClearCache, was F5laufen soll.

Aus der Dokumentation

: CtrlPClearCache Leert
den Cache für das aktuelle Arbeitsverzeichnis. Das gleiche wie beim Drücken von CtrlP.
Verwenden Sie zum Aktivieren oder Deaktivieren des Cachings | g: ctrlp_use_caching | Möglichkeit.

Oskar Persson
quelle
Ich habe GNU-Bildschirmfenster auf meine Fn-Tasten abgebildet, daher ist dies perfekt - danke!
LeonardChallis
6

Wenn Sie möchten, können Sie den Cache beim Speichern automatisch sprengen, sodass er bei der nächsten Verwendung aktualisiert werden muss.

Tragen Sie dies in Ihr vimrc ( Kreditdokument ) ein:

" CtrlP auto cache clearing.
" ----------------------------------------------------------------------------
function! SetupCtrlP()
  if exists("g:loaded_ctrlp") && g:loaded_ctrlp
    augroup CtrlPExtension
      autocmd!
      autocmd FocusGained  * CtrlPClearCache
      autocmd BufWritePost * CtrlPClearCache
    augroup END
  endif
endfunction
if has("autocmd")
  autocmd VimEnter * :call SetupCtrlP()
endif

Leider gibt es keine Möglichkeit, den Cache automatisch im Hintergrund frisch zu halten.

Mahemoff
quelle
2
auf speichern scheint irgendwie teuer. Gibt es einen möglichen Auslöser zum Erstellen einer neuen Datei?
Alex Moore-Niemi
4

Ich habe dies zu .vimrc hinzugefügt, wodurch das Ctrlp-Caching deaktiviert wird

g:ctrlp_use_caching = 0

Pip
quelle
Dies ist wahrscheinlich die beste und genaueste Antwort auf die ursprüngliche Frage. Besonders wenn Sie sich auf einem Computer befinden (ich sehe Sie Apple ..), auf den die Funktionszeile eine alternative Modifizierertaste benötigt, um darauf zuzugreifen.
Devon Kiss
Ich mag diese Antwort, auch ohne Cache, Strg ist bereits schnell genug, kann Ag verwenden, um die Geschwindigkeit zu erhöhen
Nhan Tran
2

Ich weiß, dass dies eine alte Frage ist, aber es ist so einfach, dass ich einen Kommentar abgeben muss. Tragen Sie dies in Ihre .vimrc ein

:nnoremap <c-p> :CtrlPClearCache<bar>CtrlP<cr>

Dadurch wird der Cache aktualisiert und anschließend CtrlP aufgerufen. Keine fehlenden Dateien mehr.

Luiz Rocha
quelle
2
Warum nicht einfach das Caching deaktivieren g:ctrlp_use_caching?
Martin Tournoij