Vim

Neovim 禁用回车自动补全

Posted by KalosAner on July 22, 2025

需求:

使用 neovim 时点回车总是自动补全,很多时候并不需要补全。虽然可以使用在句尾输入空格来避免自动补全,但是添加空格终归不是多好的方法。

方法:

方法很简单,在 ~/.config/nvim/init.lua 中添加如下配置就行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
local cmp = require('cmp')

cmp.setup({
  mapping = {
    -- 禁用回车确认补全
    ['<CR>'] = cmp.mapping({
      i = function(fallback)
        if cmp.visible() then
          -- 回车仅换行,不确认补全
          fallback()
        else
          fallback() -- 保持默认回车行为
        end
      end
    }),
    -- 可选:用 Tab 键确认补全
    ['<Tab>'] = cmp.mapping.confirm({ select = true }),
  }
})