Sublime中Cargo不可用的主因是PATH未透传至Sublime进程,需在控制台执行import os; print(os.environ.get('PATH'))确认含.cargo/bin路径,并配置shell_cmd、working_dir、file_regex及右下角语法为Rust,rust-analyzer须用绝对路径配置。

Sublime 控制台里查 PATH 是最直接的方式
终端能跑 cargo --version ≠ Sublime 里能调用 cargo。关键看 Sublime 进程自己的环境变量是否含 .cargo/bin。
按 Ctrl+` 打开控制台,执行:
import os; print(os.environ.get('PATH'))
输出中必须出现:
- macOS/Linux:
/Users/xxx/.cargo/bin或/home/xxx/.cargo/bin - Windows:
C:Usersxxx.cargoin
没出现就说明 PATH 没透传进来——不是插件问题,是启动方式或系统变量配置不到位。
构建系统 JSON 文件里查 working_dir 和 shell_cmd
Build System 配置错一个字段,cargo run 就会报 error: no Cargo.toml file found 或静默失败。
打开 Tools → Build System → New Build System...,确认内容包含以下三行(缺一不可):
-
"shell_cmd": "cargo run"—— 必须用shell_cmd,不是cmd;shell_cmd走系统 shell,能继承 PATH 和别名 -
"working_dir": "${project_path:${folder}}"—— 不能写成"${file_path}";否则在src/main.rs下触发构建,cargo就在src/目录找Cargo.toml -
"file_regex": "^(.+):([0-9]+):([0-9]+):\s*(.*)$"—— 注意反斜杠要双写;漏掉这行,错误信息就是纯文本,没法双击跳转
右下角语法标识和 Package Control 插件状态决定 selector 是否生效
Sublime 全靠 source.rust 这个 scope 匹配构建系统、LSP、高亮等所有功能。它不自动识别,也不猜文件类型。
打开任意 .rs 文件后,检查右下角状态栏:
- 显示
Rust:正常,source.rust已激活 - 显示
Plain Text:构建系统不会触发,LSP 不加载,rust-analyzer 直接静默
若为 Plain Text,点它手动选 Rust;若列表里没有 Rust,说明插件未加载:
- 用
Package Control: List Packages确认已安装Rust(by rust-lang),不是RustEnhanced - 二者共存会导致 selector 冲突,状态栏卡死在
Plain Text
LSP 设置里查 rust-analyzer 可执行路径
2026 年起 cargo install rust-analyzer 已废弃,rustup component add rust-analyzer 在 macOS/Linux 上常静默失败。LSP 启动失败(client not started 或 server crashed)基本都因找不到二进制。
打开 Preferences → Package Settings → LSP → Settings,检查 "clients" 下的 rust-analyzer 配置:
-
"command"必须是绝对路径,如["/usr/local/bin/rust-analyzer"],不能只写["rust-analyzer"] - 该路径必须出现在上一步
os.environ.get('PATH')的输出中 - 如果用了自定义路径(如
/opt/rust-analyzer),确保该目录已加入系统 PATH,且 Sublime 重启过
路径对了但 server 还是起不来?去控制台执行 import subprocess; subprocess.run(['/usr/local/bin/rust-analyzer', '--version']),看是否报错——这是最接近真实运行环境的验证方式。


















