23 lines
750 B
VimL
23 lines
750 B
VimL
|
" Tab completion for user defined commands.
|
||
|
"
|
||
|
" Author: Peter Odding <peter@peterodding.com>
|
||
|
" Last Change: May 19, 2013
|
||
|
" URL: http://peterodding.com/code/vim/misc/
|
||
|
|
||
|
function! xolox#misc#complete#keywords(arglead, cmdline, cursorpos)
|
||
|
" This function can be used to perform keyword completion for user defined
|
||
|
" Vim commands based on the contents of the current buffer. Here's an
|
||
|
" example of how you would use it:
|
||
|
"
|
||
|
" :command -nargs=* -complete=customlist,xolox#misc#complete#keywords MyCmd call s:MyCmd(<f-args>)
|
||
|
let words = {}
|
||
|
for line in getline(1, '$')
|
||
|
for word in split(line, '\W\+')
|
||
|
let words[word] = 1
|
||
|
endfor
|
||
|
endfor
|
||
|
return sort(keys(filter(words, 'v:key =~# a:arglead')))
|
||
|
endfunction
|
||
|
|
||
|
" vim: ts=2 sw=2 et
|