Secara default, ketika Anda menekan C-n
atau 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 i
flag 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 perl
file, 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^n
untuk info lebih lanjut.
let g:ctrlp_custom_ignore = { 'dir': '^/usr/' } let g:ctrln_custom_ignore = { 'dir': '^/usr/' }