Theo mặc định, khi bạn nhấn C-n
hoặc C-p
, Vim nhìn vào các nguồn khác nhau để tìm ứng viên sẽ điền vào menu hoàn thành.
Những nguồn này có thể được cấu hình với 'complete'
tùy chọn đệm cục bộ .
Giá trị của tùy chọn này là danh sách các cờ được phân tách bằng dấu phẩy. Mỗi cờ có ý nghĩa riêng được mô tả trong :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 "]"
Theo mặc định, giá trị của nó là .,w,b,u,t,i
, có nghĩa là:
1. the current buffer
2. buffers in other windows
3. other loaded buffers
4. unloaded buffers
5. tags
6. included files
Nếu bạn thấy rằng việc quét các tệp được bao gồm mất quá nhiều thời gian, bạn có thể thử xóa i
cờ khỏi 'cpt'
tùy chọn.
Nếu bạn muốn xóa nó khỏi giá trị toàn cầu, để ảnh hưởng đến tất cả các bộ đệm theo mặc định, bạn sẽ viết vào vimrc
:
setglobal complete-=i
Nếu bạn muốn làm điều tương tự, nhưng chỉ đối với perl
các tệp, bạn có thể cài đặt một autocmd bên trong vimrc
:
augroup PerlSettings
autocmd!
autocmd FileType perl setlocal complete-=i
augroup END
Hoặc tốt hơn, bạn có thể tạo một plugin filetype, ví dụ ~/.vim/after/ftplugin/perl.vim
, trong đó bạn chỉ cần viết:
setlocal complete-=i
Để kiểm tra xem các giá trị toàn cầu và cục bộ hiện tại của 'complete'
tùy chọn của bạn là gì và nơi chúng được đặt lần cuối, bạn có thể sử dụng các lệnh sau:
verbose setglobal complete?
verbose setlocal complete?
Hoặc ngắn hơn:
verb setg cpt?
verb setl cpt?
Nếu nguồn duy nhất mà bạn quan tâm là bộ đệm hiện tại, thì, thay vì sử dụng C-n
, bạn có thể sử dụng C-x C-n
. Xem :h i_^x^n
để biết thêm.
let g:ctrlp_custom_ignore = { 'dir': '^/usr/' } let g:ctrln_custom_ignore = { 'dir': '^/usr/' }