Neovim clangd LSP 配置出现 “attempt to call field ‘ge‘”

Neovim clangd LSP 配置出现 "attempt to call field 'ge'"

一、问题发现

在配置 Neovim 使用 lazy.nvim 管理插件,并尝试加载 clangd LSP 时,启动 Neovim 并打开 C/C++ 文件出现如下报错:

复制代码
Failed to source `/home/chipen/.local/share/nvim/lazy/nvim-lspconfig/plugin/lspconfig.lua`
vim/_editor.lua:341: BufReadPre Autocommands for "*"..script nvim_exec2() called ...
...: attempt to call field 'ge' (a nil value)

在尝试使用 pcall(require, "lspconfig") 时,返回的值不是期望的 LSP 配置模块,而是一个包含 setdel 函数地址的 table。


二、问题分析

  1. 初步判断

    • 报错信息显示 "attempt to call field 'ge' (a nil value)",说明某个函数调用不存在。

    • 初步怀疑是配置文件中有手误,将 vim.keymap.set 写成了 vim.keymap.ge,或者插件缓存被破坏。

  2. 排查插件配置

    • 检查 ~/.config/nvim/lua/plugins/lsp.lua 文件,确认文件名与模块名一致(全小写 lsp.lua)。

    • 清理 ~/.local/share/nvim/lazy/nvim-lspconfig 并重新同步插件,但报错仍然存在。

  3. 排查 Neovim 版本

    • 检查 Neovim 版本:NVIM v0.9.5

    • 报错堆栈中显示:

      复制代码
      nvim-lspconfig requires Nvim version 0.10, but you are running: 0.9.5
    • 说明问题根源在于 插件版本与 Neovim 版本不兼容

      • 最新的 nvim-lspconfig 已经要求 Neovim >= 0.10。

      • 在 0.9.5 下调用其内部 API(如 nvim_exec2)会报错,导致 "ge" 之类的函数错误。

    • apt install 从这个新增的仓库下载安装软件,更新到比官方源更新的版本。

5- 升级 Neovim 到 >=0.10

bash 复制代码
sudo add-apt-repository ppa:neovim-ppa/unstable -y
sudo apt update
sudo apt install neovim -y
  • add-apt-repository 将外部 PPA(Personal Package Archive)注册到系统 APT 源中。

三、问题解决

升级 Neovim

  • 使用 PPA 安装 Neovim 0.10+ 或更新版本,满足 nvim-lspconfig 的最低版本要求。

  • 确认升级后:

    bash 复制代码
    nvim --version

    输出为 NVIM v0.10.x 或更高。

相关推荐
嵌入小生0075 小时前
标准IO---核心函数接口延续(嵌入式Linux)
c语言·vscode·vim·嵌入式·小白·标准io·函数接口
Doro再努力6 小时前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
好好学习天天向上~~11 小时前
5_Linux学习总结_vim
linux·学习·vim
Doro再努力20 小时前
Vim 快速上手实操手册:从入门到生产环境实战
linux·编辑器·vim
Doro再努力20 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
学嵌入式的小杨同学2 天前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)
java·linux·c语言·开发语言·vscode·vim·ux
Hello World . .2 天前
Linux:软件编程
linux·运维·服务器·vim
学嵌入式的小杨同学2 天前
【嵌入式 GUI 实战】LVGL+MP3 播放器:从环境搭建到图形界面开发全指南
linux·c语言·开发语言·vscode·vim·音频·ux
学嵌入式的小杨同学3 天前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
阡陌..3 天前
Linux下的vi和vim使用方法
linux·运维·vim