查看詳情:h complete-functions
和:h 'completefunc'
。
或者潛入下面的代碼:
" Scan current buffer for everithing in { }.
fun! GetRegexes()
let rx = '{.\+}'
let res = []
for line in getline(1, '$')
if line =~ rx
call add(res, matchstr(line, rx))
endif
endfor
return res
endfun
fun! MyComplete(findstart, base)
if a:findstart
" locate the start of the completion
let line = getline('.')
let start = col('.') - 1
while start > 0 && line[start] !~ '{'
let start -= 1
endwhile
return start
else
let res = []
for m in GetRegexes()
if m =~ '^' . a:base
call add(res, m)
endif
endfor
return res
endif
endfun
set completefunc=MyComplete
finish
[0-9] {printf("yada yada \n");}
[0-9] {printf("yada \n");}
如果您將此文件保存爲compl.vim
和源它:so %
命令,那麼就可以開始輸入{pri
,然後按Ctrl鍵 - X ,Ctrl鍵 - ü調用完成菜單用2個元素:
{printf("yada yada \n");}
{printf("yada \n");}
我相信你可以根據你的需求進行調整。
您可以將2個函數保存到.vimrc中,並將completefunc設置爲MyComlete
,以獲取需要完成此類操作的緩衝區。
謝謝,但我不想這樣,我知道存儲在寄存器(「aymotion)會做,但我正在尋找一些神聖的汽車完成:P – 2010-02-11 07:28:07
我不完全確定」自動完成「真的描述你在這裏做, – rossipedia 2010-02-11 07:42:07