Neovim中rust-analyzer LSP报错:'cargo'不可执行求助
解决Neovim打开Rust文件时的"cargo is not executable"报错
报错信息
Error detected while processing BufReadPost Autocommands for "*": Error executing lua callback: /usr/share/nvim/runtime/filetype.lua:22: Error executing lua: /usr/share/nvim/runtime/filetype.lua:23: Vim(append):Error executing lua callback: Vim:E475: Invalid value for argument cmd: 'cargo' is not executable
问题根源
重装rustup后系统环境变量未正确配置,导致Neovim无法找到cargo可执行文件,触发文件类型检测和LSP相关报错,同时影响自动补全功能。
解决步骤
检查cargo的可执行性
在终端执行cargo --version,如果提示"command not found",说明cargo的路径未加入系统PATH。配置rustup环境变量
根据你的shell类型,将rustup默认的cargo路径添加到环境变量:- Bash/Zsh:编辑
~/.bashrc或~/.zshrc,追加一行:export PATH="$HOME/.cargo/bin:$PATH" - Fish:编辑
~/.config/fish/config.fish,追加一行:set -gx PATH $HOME/.cargo/bin $PATH
保存后执行
source ~/.bashrc(对应你的shell配置文件)让变更立即生效,再重新执行cargo --version验证是否正常输出版本信息。- Bash/Zsh:编辑
验证Neovim中的cargo可用性
打开Neovim,执行:!cargo --version,如果能正常输出版本,说明环境变量已生效。此时重新打开.rs文件,报错应该消失,自动补全功能也会恢复。检查rust-analyzer状态
执行:Mason打开Mason界面,确认rust-analyzer已正确安装。环境变量修复后,重启Neovim即可让rust-analyzer正常启动工作。
内容的提问来源于stack exchange,提问作者miraculous_guru
相关产品推荐
相关产品推荐

