Plugin VIM ctrlp.vim: bagaimana cara memindai ulang file?


152

Saya telah menemukan plugin ctrlp.vim yang mengagumkan . Ini adalah alternatif yang bagus untuk plugin Command-T yang telah saya gunakan sebelumnya. Apa yang saya tidak suka tentang Command-T adalah bahwa itu akan memakan waktu sekitar 20-30 detik untuk memindai kembali file ketika dipanggil untuk pertama kalinya setelah memulai vim.

CtrlP bekerja jauh lebih cepat tetapi sepertinya tidak secara otomatis memindai ulang untuk file yang baru dibuat. Bagaimana cara memicu pemindaian ulang secara manual?

Terima kasih!


3
Ini dijawab dengan sangat jelas dalam dokumentasi.
Mark Wilden

Jawaban:


283

Dari dokumentasi :

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

Ini mengasumsikan Anda sudah dalam mode ctrl-p. Perhatikan bahwa Anda dapat menekan F5 di tengah kueri, yaitu, Anda dapat mengetik beberapa karakter, menemukannya tidak cocok dengan file yang baru saja diperbarui, dan tekan F5 untuk menyegarkan saat itu. Ini akan secara otomatis menunjukkan kecocokan jika file baru saja ditambahkan ke cache ctrl-p.


105
Perhatikan bahwa ini harus dilakukan saat dalam mode CTRL-P. Jadi, 1. ctrl-p2.F5
David Kay

1
Hampir berfungsi untuk saya, saya melihatnya memperbarui tetapi tidak menemukan file yang baru ditambahkan
xer0x

1
@ xer0x Pastikan Anda berada di CWD yang benar. Punya masalah yang sama saat menggunakan NERDTree.
jsbeckr

9
Hanya untuk menambahkan, Anda tidak dapat mencari file Anda sendiri saat sedang mengeditnya.
Daryll Santos

58

Seperti yang dikatakan Jeet , Anda dapat menekan F5tetapi jika itu tidak berhasil, Anda selalu dapat menjalankan :CtrlPClearCacheapa F5yang seharusnya dijalankan.

Dari dokumentasi

: CtrlPClearCache
Siram cache untuk direktori kerja saat ini. Sama seperti menekan di dalam CtrlP.
Untuk mengaktifkan atau menonaktifkan caching, gunakan | g: ctrlp_use_caching | pilihan.


Saya memiliki jendela layar GNU yang dipetakan ke tombol Fn saya jadi ini sempurna - terima kasih!
LeonardChallis

6

Jika mau, Anda dapat secara otomatis memecahkan cache ketika terjadi penyelamatan, sehingga akan dipaksa untuk menyegarkan pada penggunaan berikutnya.

Letakkan ini di vimrc Anda ( dokumen kredit ):

" 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

Sayangnya tidak ada cara untuk menjaga cache tetap segar di latar belakang.


2
menghemat tampaknya agak mahal. apakah ada pemicu yang mungkin untuk membuat file baru?
Alex Moore-Niemi

4

Saya menambahkan ini ke .vimrc yang mematikan ctrlp caching

g:ctrlp_use_caching = 0


Ini mungkin jawaban terbaik dan paling akurat untuk pertanyaan awal. Terutama jika Anda berada di komputer (saya sedang melihat Anda Apple ..) di mana baris fungsi membutuhkan kunci pengubah alternatif untuk mengakses.
Devon Kiss

saya suka jawaban ini, bahkan tanpa cache, ctrp sudah cukup cepat, dapat menggunakan Ag untuk meningkatkan kecepatan
Nhan Tran

2

Saya tahu ini adalah pertanyaan lama, tetapi sangat sederhana sehingga saya harus berkomentar. Letakkan ini di .vimrc Anda

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

Ini akan menyegarkan cache dan kemudian memanggil CtrlP. Tidak ada lagi file yang hilang.


2
Mengapa tidak menonaktifkan caching saja g:ctrlp_use_caching?
Martin Tournoij
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.