Open2
ddc.vimとnvim-autopairsの共存のための設定方法
結論
vim.cmd [[
inoremap <silent><expr> <CR> pum#visible() ? pum#map#confirm() :
\ "\<Cmd>call feedkeys(v:lua.require('nvim-autopairs').autopairs_cr(), 'in')\<CR>"
]]
詳細
completion系pluginで補完の確定を<CR>に設定している人は、autopairs系のpluginと競合しないように設定すると思うのですが、ddc.vimとnvim-autopairsの組み合わせの情報はあまり見かけなかったので残しておきます。
私は以前はautopairsにmini.pairsを使用していて、ddcとの共存の設定は以下のようにしていました。
local pum_visible = vim.fn["pum#visible"]
vim.keymap.set("i", "<CR>", function()
return pum_visible() and "<Cmd>call pum#map#confirm()<CR>" or require("mini.pairs").cr()
end, { expr = true, silent = true, noremap = false })
しかし、HTMLタグのautopairsのためにnvim-ts-autotagを使用したくなり、それに伴いmini.pairsからnvim-autopairsに移行を行いました。
そこで、上記のコードのmini.pairsの部分だけをnvim-autopairs用に修正したところ、うまく動作しませんでした。
色々試行錯誤したのですが、うまくいかず、GitHubをあさった結果以下のものが見つかりました。
これはcoc用だったので、少し修正したものが冒頭のコードとなります。これでようやくうまく動きました。
ただし、vim.cmd
で書いてしまっているので、ちゃんとluaで書けるようにしたいですね。