You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NeoVim中nvim-cmp在CSS/SCSS输入$时崩溃的排查求助

问题排查与解决指南

问题描述

安装用于生成函数/CSS匹配闭合标签的nvim-autopairs插件后,nvim-cmp出现崩溃问题。已通过Lazy包管理器卸载该插件并从init.lua移除相关配置,但问题仍未解决。仅在CSS/SCSS文件中输入$时触发错误,报错信息如下:

Error executing vim.schedule lua callback:
...local/share/nvim/lazy/nvim-cmp/lua/cmp/utils/snippet.lua:409: snippet parsing failed.
stack traceback:
[C]: in function 'error'
...local/share/nvim/lazy/nvim-cmp/lua/cmp/utils/snippet.lua:409: in function 'parse'
...cgowan/.local/share/nvim/lazy/nvim-cmp/lua/cmp/entry.lua:185: in function '_get_word'
...cgowan/.local/share/nvim/lazy/nvim-cmp/lua/cmp/entry.lua:90: in function '_set_completion_item'
...cgowan/.local/share/nvim/lazy/nvim-cmp/lua/cmp/entry.lua:62: in function 'new'
...gowan/.local/share/nvim/lazy/nvim-cmp/lua/cmp/source.lua:367: in function ''
vim/_editor.lua: in function <vim/_editor.lua:0>

使用auto-sessions管理会话,但新打开项目时问题依然触发。

排查与解决步骤

1. 用纯净环境缩小问题范围

  • 启动NeoVim时加参数:nvim -u NONE,进入无插件的纯净模式
  • 手动配置最简版nvim-cmp(仅核心+CSS补全源),测试输入$是否还报错:
    • 不报错:说明是其他插件和nvim-cmp冲突
    • 仍报错:考虑nvim-cmp版本或NeoVim自身版本问题

2. 检查并更新/回退nvim-cmp及相关源

  • 用Lazy查看nvim-cmp和CSS补全源(如cmp-css、cmp-nvim-lsp)的版本,更新到最新版:
    :Lazy update nvim-cmp cmp-css cmp-nvim-lsp
    
  • 若更新后问题仍存在,回退nvim-cmp到稳定版本,在Lazy配置中指定版本:
    {
      'hrsh7th/nvim-cmp',
      version = 'v0.0.1', -- 替换为已知稳定的版本号
      -- 其他配置
    }
    

3. 排查CSS补全源问题

  • 临时注释掉nvim-cmp配置中的CSS相关补全源,测试输入$是否报错:
    • 恢复正常:说明该补全源返回的补全项有格式错误,需检查源的配置或反馈问题
    • 仍报错:排除补全源问题,继续下一步

4. 清理残留配置与缓存

  • 彻底检查所有配置文件(如init.lua、局部配置片段),删除nvim-autopairs的残留代码(比如事件绑定、钩子函数)
  • 清除NeoVim缓存文件:
    rm -rf ~/.local/share/nvim/cache
    rm -rf ~/.local/state/nvim
    
  • 用auto-sessions清除所有会话:
    :SessionDelete
    
    重启NeoVim后新建会话测试

5. 检查NeoVim版本兼容性

  • nvim-cmp通常要求NeoVim 0.7+,建议升级到最新稳定版:
    # Debian/Ubuntu系统示例
    sudo apt update && sudo apt install neovim
    # macOS系统示例
    brew upgrade neovim
    

6. 开启调试定位具体问题

  • 在nvim-cmp配置中开启调试模式:
    require('cmp').setup({
      -- 其他配置
      logging = {
        level = 'debug',
      },
    })
    
  • 触发错误后查看日志文件(路径一般为~/.local/state/nvim/cmp.log),找到导致snippet解析失败的具体补全项,针对性处理

内容的提问来源于stack exchange,提问作者Frizzant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 06:07:42