最近我重写了我的 NeoVim 配置文件vim 脚本到鲁阿一切运行正常,但我有一个问题。当我使用 coc.nvim 自动完成并选择某些内容并按回车键时,NeoVim 会换行并且不会自动完成。我找到了解决方案那里,但仅限于Vim 脚本。我如何在 NeoVim Lua 中做到这一点?
inoremap <expr> <CR> pumvisible() ? "\<C-Y>" : "\<CR>"
答案1
这很简单,您只需添加:
inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() : "\<CR>"
你必须把这行放在里面init.lua
但是,如果您使用自动配对包(https://github.com/windwp/nvim-autopairs) 与 COC 一起使用则不起作用。
要检查它是否会起作用,只需运行
:verbose imap <CR>
安装并设置软件包后
如果什么都没有,您可以使用我提供的 imap。如果有任何键映射已经绑定到 CR(顺便说一下,这意味着输入),那么您必须在包上重新映射它或使用与输入不同的键。
就我而言,windwp 自动配对需要回车键,这会导致错误。
解决方案是使用 COC 自动配对。只需运行:CocInstall coc-pairs
就可以了。
答案2
我想我找到解决方案了!
如果你通过 packer 安装插件,请在 init.lua 中写入:
require('nvim-autopairs').setup{
map_cr = false,
}
我希望这个对你有用
答案3
您可以通过在 init.lua 中添加此内容来实现此目的
vim.fn.nvim_command('inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() : "\\<CR>"')