如何在vim中映射弹出菜单的键

Hai*_*ang 8 vim

完成尝试后,omnicppcomplete将在弹出菜单中显示所有可能的项目.要选择菜单中的某个项目,应该使用<C-N><C-p>在不同项目之间来回切换.我觉得这很不方便.它应该是非常酷的,如果 j并且k可以用来取代<C-N><C-P>.那我该怎么办?

Nik*_*sev 10

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>
Run Code Online (Sandbox Code Playgroud)