how to map keys for popup menu in vim

匿名 (未验证) 提交于 2019-12-03 02:25:01

问题:

After a completion try, omnicppcomplete will display all the possible items in the pop up menu . To select an certain item in the menu, one should use <C-N> and <C-p> to switch back and forth between different items. I feel that it is very inconvient . It should be very cool if j and k can be used to to take place of <C-N> and <C-P> . so how should I do ?

回答1:

function! OmniPopup(action)     if pumvisible()         if a:action == 'j'             return "\<C-N>"         elseif a:action == 'k'             return "\<C-P>"         endif     endif     return a:action endfunction  inoremap <silent>j <C-R>=OmniPopup('j')<CR> inoremap <silent>k <C-R>=OmniPopup('k')<CR> 


回答2:

I prefer using the tab key for completion (I am not sure where I got this from):

"tab complete function! InsertTabWrapper(direction)     let col = col('.') - 1     if !col || getline('.')[col - 1] !~ '\k'         return "\<tab>"     elseif "backward" == a:direction         return "\<c-p>"     else         return "\<c-n>"     endif endfunction inoremap <tab> <c-r>=InsertTabWrapper ("forward")<cr> inoremap <s-tab> <c-r>=InsertTabWrapper ("backward")<cr> 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!