Fix: iMap <Cr> Interfere in completion (alias popup-menu, pum) (Issue: #813)

Problem: When pum opened, the mapping of <CR> is triggered but user
want the default behaviour: to choose a completion item

Solution: Conditional mapping:
inoremap <expr><silent><buffer> <CR> pumvisible() ? '<CR>' : ':<Esc>:VimwikiReturn 1 5<Cr>'
                         The previous mapping  -----------------^
This commit is contained in:
Tinmarino
2020-08-05 12:05:39 -04:00
parent 8cc99c00c2
commit e4186adc3d
3 changed files with 26 additions and 5 deletions

View File

@ -501,17 +501,18 @@ if str2nr(vimwiki#vars#get_global('key_mappings').lists)
call vimwiki#u#map_key('n', 'o', '<Plug>VimwikiListo')
call vimwiki#u#map_key('n', 'O', '<Plug>VimwikiListO')
" handle case of existing VimwikiReturn mappings outside the <Plug> definition
" Handle case of existing VimwikiReturn mappings outside the <Plug> definition
" Note: Avoid interfering with popup/completion menu if it's active (#813)
if maparg('<CR>', 'i') !~# '.*VimwikiReturn*.'
if has('patch-7.3.489')
" expand iabbrev on enter
inoremap <silent><buffer> <CR> <C-]><Esc>:VimwikiReturn 1 5<CR>
inoremap <expr><silent><buffer> <CR> pumvisible() ? '<CR>' : '<C-]><Esc>:VimwikiReturn 1 5<CR>'
else
inoremap <silent><buffer> <CR> <Esc>:VimwikiReturn 1 5<CR>
inoremap <expr><silent><buffer> <CR> pumvisible() ? '<CR>' : '<Esc>:VimwikiReturn 1 5<CR>'
endif
endif
if maparg('<S-CR>', 'i') !~# '.*VimwikiReturn*.'
inoremap <silent><buffer> <S-CR> <Esc>:VimwikiReturn 2 2<CR>
inoremap <expr><silent><buffer> <S-CR> pumvisible() ? '<CR>' : '<Esc>:VimwikiReturn 2 2<CR>'
endif
" change symbol for bulleted lists