Sublime Text 4 配置 Rust 开发环境需满足三条件:cargo/rust-analyzer 在 Sublime 进程 PATH 中可用、.rs 文件右下角手动设为 Rust、构建系统与 LSP 均正确配置 shell_cmd/working_dir/file_regex 及绝对路径 command 和 initializationOptions;缺一则 Ctrl+B 静默失败或补全空白。

Sublime Text 本身不提供 Rust 运行能力,所谓“配置开发环境”,就是让 cargo 和 rust-analyzer 在 Sublime 内部真正可用、文件被识别为 Rust、错误能跳转、补全能触发——缺任何一环,Ctrl+B 就静默失败,LSP 就不加载,补全就空白。
验证 cargo 和 rust-analyzer 在 Sublime 控制台里真能跑
终端里 cargo --version 成功,不代表 Sublime 能调用它。GUI 启动的 Sublime 不读 ~/.zshrc 或 %PATH% 设置,它的环境变量是独立继承的。
- 按
Ctrl+`打开 Sublime 控制台,执行:import os; print(os.environ.get('PATH'))确认输出中包含.cargo/bin(如/Users/xxx/.cargo/bin或C:\Users\xxx\.cargo\bin) - Windows 用户必须把
%USERPROFILE%\.cargo\bin加进「系统环境变量」,加完后彻底退出 Sublime(不是关窗口),再重开 - macOS/Linux 用户若用 zsh/fish,
source ~/.zshrc无效;推荐从终端运行subl启动编辑器,或改用绝对路径配置 - 验证
rust-analyzer:import subprocess; subprocess.run(['rust-analyzer', '--version'])
报FileNotFoundError?说明路径没进环境变量,或没装对
右下角必须显示 Rust,不是 Plain Text
Sublime 全靠这个标识匹配 source.rust 语法 scope,构建系统、LSP 补全、高亮、file_regex 跳转全依赖它。选错就等于没配。
- 打开任意
.rs文件,点右下角状态栏(默认显示Plain Text),手动选Rust - 如果列表里没有
Rust,说明官方插件没装:用 Package Control 安装Rust(by rust-lang),**别装 RustEnhanced**——二者共存会冲突,导致状态栏卡死 - 装完后进
View → Syntax → Rust → Rust,设为默认,避免每次手动切 - 不手动选,Sublime 就当它是纯文本,所有 Rust 相关功能都不会激活
构建系统必须写对 shell_cmd、working_dir 和 file_regex
网上抄的 JSON 常漏字段,导致 cargo run 找不到 Cargo.toml,或双击错误行没反应。关键不是“有没有构建系统”,而是字段是否配对。
- 用
"shell_cmd": "cargo run",不是"cmd":前者走系统 shell,能解析 PATH 和空格路径;后者直调进程,Windows 上含空格路径(如C:\Users\Alice Smith\.cargo\bin\cargo.exe)必崩 -
"working_dir": "${project_path:${folder}}"必须写:否则cargo在当前文件目录执行,找不到项目根下的Cargo.toml,直接报no Cargo.toml found -
"file_regex": "^(.+?):([0-9]+):([0-9]+):.*$"是 Rust 错误的标准匹配;漏掉.*$或多加空格,整行就不匹配,双击跳转失效 - 如果项目是 workspace,错误路径可能带 crate 名(如
my-crate/src/lib.rs:5:10),建议改用更宽松的:"file_regex": "^([^:]+):([0-9]+):([0-9]+):.*$"
LSP 配置 rust-analyzer 必须用绝对路径 + 正确 initializationOptions
rust-analyzer 启动失败时往往静默退出,LSP 日志里连错误都不打。常见原因是路径不对或 initializationOptions 漏项。
-
"command"字段必须是绝对路径:"/home/john/.cargo/bin/rust-analyzer";"rust-analyzer"或"~/.cargo/bin/rust-analyzer"都会失败 - Windows 路径含空格(如
C:\Users\John Doe\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library)会导致启动失败,建议复制到无空格路径,例如%USERPROFILE%\bin\rust-analyzer.exe - 必须放在
initializationOptions里的三项:"cargo.loadOutDirsFromCheck": true(否则target/不索引)、"procMacro.enable": true(否则#[derive(Debug)]展不开)、"cargo.runBuildScripts": true(否则build.rs生成代码不可见) -
settings下只能放 LSP 插件自身参数(如"lsp_format_on_save": true),把procMacro.enable放这儿,rust-analyzer 根本收不到
最常被忽略的一点:Rust Analyzer 是否真正加载,只看 LSP 日志里有没有 Loaded workspace。没这句,前面所有配置都白搭——它根本没开始工作。


















