NeoVim coc.nvim Enter 键无法自动完成

jih*_*doc 5 autocomplete neovim

最近我将 NeoVim 配置文件从vim 脚本重写为lua,一切工作正常,但我有一个问题。当我使用 coc.nvim 进行自动完成并选择某些内容并按 Enter 时,NeoVim 会创建一个新行并且不会自动完成。我在那里找到了解决方案,但仅限于Vim 脚本我怎样才能在 NeoVim Lua 中做到这一点?

inoremap <expr> <CR> pumvisible() ? "\<C-Y>" : "\<CR>"
Run Code Online (Sandbox Code Playgroud)

小智 9

这很简单,您只需添加:

inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() : "\<CR>"
Run Code Online (Sandbox Code Playgroud)

你必须把这条线放进去init.lua

但是,如果您将自动配对包 ( https://github.com/windwp/nvim-autopairs ) 与 COC 一起使用,它将无法工作。

检查它是否可以简单运行

:verbose imap <CR> 
Run Code Online (Sandbox Code Playgroud)

安装并设置软件包后

如果没有任何内容,您可以使用我提供的 imap。如果有任何键映射已经绑定到 CR(这意味着输入 BTW),那么您必须在包上重新映射它或使用与 Enter 不同的键。

就我而言,windwp 自动配对需要输入回车键,这会导致错误。

解决方案是使用COC自动配对。只要跑:CocInstall coc-pairs就可以了。