sublime text 配置 rust 的核心是确保 cargo 和 rust-analyzer 可被调用,并正确设置 working_dir 与 file_regex;需检查 path 是否包含 ~/.cargo/bin 或 %userprofile%.cargoin,从终端启动 sublime 或添加 "shell": true,working_dir 必须设为 "${project_path:${folder}}",file_regex 必须配置以支持错误跳转,且项目须通过 open folder 加载,语法须设为 rust,rust-analyzer 必须手动下载并用绝对路径配置。

Sublime Text 本身不编译 Rust,它只调用 cargo;配置失败的主因不是插件没装对,而是 cargo 在 Sublime 进程里根本找不到,或者 working_dir 指向了错误目录。
确认 cargo 真正在 Sublime 里可用
终端能跑 cargo --version ≠ Sublime 能调用 cargo。GUI 启动的 Sublime 不加载你的 shell 配置(如 ~/.zshrc),PATH 常被截断。
- 按
Ctrl+`打开 Sublime 控制台,执行:import os; print(os.environ.get('PATH'))检查输出是否含~/.cargo/bin(macOS/Linux)或%USERPROFILE%.cargoin(Windows) - macOS/Linux:确保
~/.cargo/bin已写入 shell 配置,并执行过source ~/.zshrc;更可靠的是从终端启动:subl . - Windows:把
%USERPROFILE%.cargoin加进「系统环境变量」(不是用户变量),加完必须彻底退出 Sublime(右键任务栏 → 退出),再重开 - 加
"shell": true到构建系统里是最稳妥的兜底方案——它让命令走系统 shell,能继承完整 PATH
构建系统必须配齐 shell_cmd、working_dir 和 file_regex
网上抄的 JSON 常漏关键字段,导致 cargo run 找不到 Cargo.toml,或错误信息无法双击跳转。
- 用
"shell_cmd": "cargo run",别用"cmd":前者走 shell,兼容 PATH 和别名;后者直调进程,Windows 上路径含空格时大概率崩 -
"working_dir": "${project_path:${folder}}"必须写死:否则cargo在当前文件所在目录(比如src/)执行,报error: no Cargo.toml file found -
"file_regex": "^(.+):([0-9]+):([0-9]+):\s*(.*)$"必须配:漏掉这行,所有错误都只是纯文本日志,没法双击跳转到src/main.rs:2:5 - 打开项目时,用 File → Open Folder 加载整个文件夹(含
Cargo.toml),别只双击单个.rs文件
右下角状态栏必须显示 Rust,不是 Plain Text
Sublime 全靠这个标识匹配 source.rust selector,语法高亮、构建系统触发、LSP 补全都依赖它。选错就全挂。
- 打开任意
.rs文件,点右下角状态栏(显示Plain Text的地方),手动选Rust - 如果列表里没有
Rust,说明插件没加载:用 Package Control 安装Rust(by rust-lang),不是RustEnhanced;二者共存会冲突,导致状态栏卡死 - 装完后进 View → Syntax → Rust → Rust,设为默认,避免每次手动切
rust-analyzer 启动失败?别信 cargo install 或 rustup component add
2026 年起,cargo install rust-analyzer 已废弃;rustup component add rust-analyzer 在 macOS 和部分 Linux 上常静默失败。
- 必须手动下载二进制:去 GitHub releases 下对应平台版本(如
rust-analyzer-aarch64-apple-darwin),解压得单个可执行文件 - 放进固定路径:
/usr/local/bin/rust-analyzer(macOS/Linux)或C: ools ust-analyzer.exe(Windows),并确保该路径已加入系统 PATH - LSP 配置中
"command"必须写绝对路径:["/usr/local/bin/rust-analyzer"],不能只写["rust-analyzer"] - 再次验证控制台
import os; print(os.environ.get('PATH'))是否含该路径
最易被忽略的其实是 working_dir 和 file_regex:一个决定 cargo 能不能找到项目,一个决定错误能不能点进去——其他都可能“看起来正常”,唯独这两项错,会导致整个构建流程变成黑盒日志。











