我要做的是让<tab>
做所有事情。
我将CodeComplete()函数的结果传递给变量codecompl
。问题在于:如何在变量codecompl
中插入蜇。请不要调用return,因为在插入变量codecompl
的字符串后我必须处理其他内容。
代码帖子在这里:
function! CleverTab()
if strpart( getline('.'), 0, col('.')-1 ) =~ '^\s*$'
return "\<Tab>"
endif
if pumvisible()
return "\<C-N>"
endif
let s:codecompl = CodeComplete()
<c-r>=s:codecompl<cr>
"exec " " .s:codecompl. "\<enter>"."."
"if g:swith_region_flag == 1
" return SwitchRegion()
"else return s:codecompl
return ''
endfunction
我试过很多方法,但问题仍然没有解决。而我现在想的是使用=在变量codecompl中插入字符串。然后做其他事情。
答案 0 :(得分:2)
如果您不坚持编写自己的功能,请查看supertab。它配备了所有这些功能......
答案 1 :(得分:1)
你的意思是你不能
:return s:codecompl
因为您需要执行其他代码,但 后插入s:codecompl
的内容已完成?!
在单一功能中无法实现该序列;将附加代码移动到另一个函数并将其调用附加到插入的代码:
:return s:codecompl . "\<C-O>:call SecondPart()\<CR>"
或者
:return s:codecompl . "\<C-R>=SecondPart()\<CR>"