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>