Lihat :h :command-completion-custom
Kita dapat mengadaptasi contoh terakhir untuk menyelesaikan hanya file yang terdaftar oleh git.
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
Sekarang Anda dapat menggunakan pelengkapan otomatis untuk membuka file yang terdaftar oleh git:
:GitFind ome_f<Tab>
Perhatikan bahwa dalam fungsi penyelesaian kustom, kita harus melakukan lebih dari sekadar daftar file yang dapat diselesaikan. Kita juga harus memfilter daftar relatif terhadap argumen commandline saat ini ArgLead. Dalam contoh ini, kami meminta gituntuk melakukan penyaringan untuk kami, dengan memberikan argumen yang dibungkus dengan *wildcard.