排查Neovim(LazyVim)中.erb文件异常报错的来源
定位.erb文件报错来源的排查步骤
1. 逐个禁用工具验证
- 禁用Ruby-LSP:在LazyVim的Ruby-LSP插件配置中临时添加
enabled = false,重启Neovim后打开目标.erb文件,观察报错是否消失。 - 禁用erb-lint:要么在项目根目录的
.erb-lint.yml中添加enabled: false全局禁用,要么在Neovim的linting配置(如nvim-lint的配置项)中移除erb-lint的检查入口,重启后验证。 - 禁用rubocop:在项目的
.rubocop.yml中设置AllCops: Enabled: false,或者在Neovim中关闭rubocop的lint检查,确认报错是否消失。
2. 查看Neovim诊断详情
- 光标定位到报错行,执行
:LspInfo命令,查看当前激活的LSP服务列表,若Ruby-LSP在列,可初步锁定排查方向。 - 执行
vim.diagnostic.open_float()打开诊断弹窗,弹窗内会明确标注诊断来源(如rubocop、erb-lint或ruby-lsp),这是最直接的定位方式。
3. 终端手动运行工具对比
- 直接在终端执行
erb-lint path/to/your/file.erb,将输出的报错内容、行号和Neovim中的报错对比,匹配则说明是erb-lint触发。 - 执行
rubocop path/to/your/file.erb(需确保rubocop已安装erb相关插件),对比报错信息是否一致。 - 查看Ruby-LSP的日志文件,默认路径为
~/.local/share/nvim/lsp_logs/ruby_lsp.log,搜索目标文件的报错记录,确认是否来自Ruby-LSP。
4. 检查工具版本变更
由于问题是更新后出现,可分别查看三个工具的版本更新日志:
- 查看erb-lint、rubocop的GitHub Release记录,或Ruby-LSP的更新说明,重点关注是否新增了.erb相关的检查规则,或修改了文件解析逻辑。
内容的提问来源于stack exchange,提问作者DenicioCode
相关产品推荐
相关产品推荐

