Secara default, ketika Anda menekan C-natau C-p, Vim mencari di dalam berbagai sumber untuk menemukan kandidat yang akan mengisi menu penyelesaian.
Sumber-sumber ini dapat dikonfigurasi dengan opsi buffer-local 'complete'.
Nilai opsi ini adalah daftar tanda yang dipisahkan koma. Setiap bendera memiliki artinya sendiri yang dijelaskan dalam :h 'cpt:
. scan the current buffer ('wrapscan' is ignored)
w scan buffers from other windows
b scan other loaded buffers that are in the buffer list
u scan the unloaded buffers that are in the buffer list
U scan the buffers that are not in the buffer list
k scan the files given with the 'dictionary' option
kspell use the currently active spell checking |spell|
k{dict} scan the file {dict}. Several "k" flags can be given, patterns are valid too. For example:
:set cpt=k/usr/dict/*,k~/spanish
s scan the files given with the 'thesaurus' option
s{tsr} scan the file {tsr}. Several "s" flags can be given, patterns are valid too.
i scan current and included files
d scan current and included files for defined name or macro |i_CTRL-X_CTRL-D|
] tag completion
t same as "]"
Secara default, nilainya adalah .,w,b,u,t,i, yang berarti:
1. the current buffer
2. buffers in other windows
3. other loaded buffers
4. unloaded buffers
5. tags
6. included files
Jika Anda menemukan bahwa memindai file-file yang disertakan membutuhkan terlalu banyak waktu, Anda dapat mencoba menghapus iflag dari 'cpt'opsi.
Jika Anda ingin menghapusnya dari nilai global, untuk memengaruhi semua buffer secara default, Anda akan menulis di vimrc:
setglobal complete-=i
Jika Anda ingin melakukan hal yang sama, tetapi hanya untuk perlfile, Anda dapat menginstal autocmd di dalam vimrc:
augroup PerlSettings
autocmd!
autocmd FileType perl setlocal complete-=i
augroup END
Atau lebih baik, Anda bisa membuat plugin tipe file, misalnya di ~/.vim/after/ftplugin/perl.vim, di mana Anda cukup menulis:
setlocal complete-=i
Untuk memeriksa apa nilai global dan lokal saat ini dari 'complete'opsi Anda , dan di mana nilai-nilai itu ditetapkan terakhir, Anda bisa menggunakan perintah ini:
verbose setglobal complete?
verbose setlocal complete?
Atau lebih pendek:
verb setg cpt?
verb setl cpt?
Jika satu-satunya sumber yang Anda minati adalah buffer saat ini, maka, alih-alih menggunakan C-n, Anda bisa menggunakan C-x C-n. Lihat :h i_^x^nuntuk info lebih lanjut.
let g:ctrlp_custom_ignore = { 'dir': '^/usr/' } let g:ctrln_custom_ignore = { 'dir': '^/usr/' }