Как разрешить конфликт сочетаний клавиш с coc для vim?

Как разрешить конфликт сочетаний клавиш с coc для vim?

В качестве предисловия: я не программист, но я написал небольшую оболочку для автоматизации некоторых задач.

Это происходит на MacOS Mojave, но это не должно иметь большого значения, поскольку конфигурации neovim должны быть перенесены.

Я заметил, что когда я пытаюсь использовать функцию автодополнения coc, нажатие Enter просто возвращает на следующую строку, а не выбирает автодополнение. Я подозревал, что это связано с vimwiki или markdown. Я посмотрел наэта темачтобы попытаться найти конфликтующую комбинацию клавиш, и я получил это на выходе :verbose imap <cr>после попытки автодополнения:

i  <CR>        &@<C-]><Esc>:VimwikiReturn 1 5<CR><SNR>38_AutoPairsReturn
        Last set from ~/.config/nvim/plugged/auto-pairs/plugin/auto-pairs.vim line 662
i  <CR>        * pumvisible() ? "\<C-Y>" : "\<CR>"
        Last set from ~/.config/nvim/init.vim line 225
Press ENTER or type command to continue

Итак, я посмотрел auto-pairs.vimи нашел вот это:

execute 'inoremap <script> <buffer> <silent> <CR> .old_cr.'<SID>AutoPairsReturn'

Мне кажется, что он имеет приоритет над переназначением в init.vim:

inoremap <expr><cr> pumvisible() ? "\<C-y>" : "\<CR>"

Я пытался выяснить, где pumvisible()находится эта функция, но не смог найти ее определения. Я подумал, что могу остановить привязку в автопарах, сделав что-то с этим. Затем я попытался изменить переназначение в init.vim. Это ничего не дало, я изменил <cr>на <Space>и <Right>, но это имело эффект домино, заставив мои клавиши со стрелками работать как ввод при любых обстоятельствах.

Как исправить этот конфликт? Если мне нужно редактировать файлы плагина (я использую vim-plug), как мне сделать это аккуратно (чтобы не сломалось при обновлении)?

Спасибо. Если необходимо, могу предоставить полную init.vimили полную конфигурацию neovim на github.

решение1

Сопоставление клавиш Tab в Vimwiki также конфликтует с моим автозаполнением coc.nvim, добавьте это в свой init.vim

au filetype vimwiki silent! iunmap <buffer> <Tab>

решение2

i Изменено сопоставление для настройки COC

inoremap <silent> <expr> <C-End> pumvisible() ? coc#_select_confirm() : "<Cg>u<CR><cr>=coc#on_enter()<CR>"

теперь я выбираю, нажав ctrl + end

Связанный контент