Görmek :h :command-completion-custom
Son örneği yalnızca git tarafından listelenen dosyaları tamamlayacak şekilde uyarlayabiliriz.
command! -nargs=1 -bang -complete=customlist,GitFindComplete
\ GitFind edit<bang> <args>
function! GitFindComplete(ArgLead, CmdLine, CursorPos)
let search_pattern = "*" . a:ArgLead . "*"
let shell_cmd = "git ls-files " . shellescape(search_pattern)
return split(system(shell_cmd), "\n")
endfunction
Artık git ile listelenen dosyaları açmak için otomatik tamamlamayı kullanabilirsiniz:
:GitFind ome_f<Tab>
Özel bir tamamlama işlevinde, tamamlanabilecek dosyaları listelemekten daha fazlasını yapmamız gerektiğini unutmayın. Ayrıca , listeyi geçerli komut satırı bağımsız değişkenine göre filtrelemeliyizArgLead
. Bu örnekte, git
filtrelemeyi, *
joker karakterlere sarılmış argümanı geçirerek bizim için yapmayı istiyoruz .