You can't "directly" map keys in the pop-up menu, you'll have to use expression mappings and the pumvisible() function to check if the popup menu is visible. inoremap <expr> <C-j> pumvisible() ? "\<C-n>" : "\<C-j>" inoremap <expr> <C-k> pumvisible() ? "\<C-p>" : "\<C-k>" If the popup menu is visible <C-j&...


If you use the noinsert flag in completeopt in combination with menu, the first item will be selected (but not inserted into the buffer). set completeopt=menu,noinsert


For future references, I would suggest you to always use noremap version of vim keymapping. Otherwise, the mappings get remapped. For example when you map like this: :imap <Esc> <Esc><Esc> Your mapped <Esc> gets again mapped to two more <Esc>. So it would probably be recursive. So, instead do this: :inoremap <Esc> <...


I have had moderate success with pydoc.vim for documentation; it can be helpful to use a virtualenv/run setup.py develop, but you may still have to point it at the right python. I’ve also had moderate success with tags (I use universal ctags and these hooks to keep them up to date). With tags, I can quickly jump to the source and read a docstring. ...


"return + shift" (AKA <S-Enter>) cannot be mapped in Nvim, unless you're using a GUI that captures "shift" and separately. But "alt + return" (<A-Enter>) can be mapped. :inoremap <A-Enter> <C-e><Enter>

Only top voted, non community-wiki answers of a minimum length are eligible