Neovim从NeoTree删除文件/文件夹时崩溃,求助排查原因
删除被引用文件时Neovim崩溃的原因排查
没法直接断定是LSP还是NeoTree的问题,得结合具体表现和排查结果判断,核心分两种情况:
NeoTree层面的可能:如果崩溃在删除操作执行瞬间触发,或者仅通过NeoTree删除时才会崩溃(用
:!rm -rf原生命令删除则正常),大概率是NeoTree的逻辑漏洞。比如删除文件后未正确通知Neovim核心更新缓冲区状态,或者未释放已打开的文件句柄,导致Neovim访问已失效的文件资源时崩溃。LSP层面的可能:如果崩溃发生在删除操作完成后,LSP触发引用扫描或文档更新检查的阶段,那问题可能出在LSP服务。比如LSP未处理“文件已被删除”的异常,仍尝试读取不存在的文件内容,或者遍历引用关系时访问了无效内存地址,进而引发Neovim崩溃。这种情况通常能在LSP日志里找到崩溃前的
文件不存在类报错。
快速排查步骤
- 临时禁用LSP插件,仅保留NeoTree,重复删除操作:若仍崩溃,锁定NeoTree问题;若不崩溃,再单独启用LSP排查。
- 查看Neovim日志(
nvim --log生成日志或~/.local/state/nvim/lsp.log),定位崩溃前的最后一条日志来源,判断是NeoTree还是LSP服务输出。 - 对比原生命令删除和NeoTree删除的差异:原生操作正常则问题在NeoTree。
内容的提问来源于stack exchange,提问作者Sreejith
相关产品推荐
相关产品推荐

