求教,自己写实例函数,如何实现?
vim吧
全部回复
仅看楼主
level 1
求教,自己写补全函数,如何实现?
想自己添加个补全函数,要如何实现?
有没有具体例子,大神教下
2020年11月10日 07点11分 1
level 7
用vimscript吗?插件不行吗?不过vim的补全好像是硬伤。
2020年11月10日 10点11分 2
level 1
折腾一天,看帮助,勉强弄懂completefunc 来设置函数,把<c-n> map为 <c-x><c-u> 再在对应的函数手动实现普通<c-n>补全。再看看omini补全如何实现,再来慢慢完善自己的补全。
fun! CompleteD(findstart,base)
if a:findstart
let line=getline('.')
let start=col('.')-1
while start>0 && line[start-1]=~'\a'
let start-=1
endwhile
return start
else
"得到所有匹配 pat='\<'.a:base.'\a\+'
let pat='\<'.a:base.'\a\+'
let line_num=line('$')
let i=1
while i <line_num
let linestr=getline(i)
if linestr=~a:base
let j=1
let word=matchstr(linestr,pat,0,j)
while word!=""
call complete_add(word)
let j+=1
let word=matchstr(linestr,pat,0,j)
endwhile
endif
let i+=1
endwhile
return []
endif
endfunc
set completefunc=CompleteD
fun! CleverTab()
return "\<c-x>\<c-u>"
endfunc
"tab键映射为函数
inoremap <c-n> <c-r>=CleverTab()<cr>
2020年11月10日 15点11分 3
1