Sublime Text需通过LSP-rust-analyzer插件联动rustfmt实现保存即格式化,且须手动配置formatOnSave、确保rustfmt全局可用并被正确识别为Rust语法。

Sublime Text 本身不支持 Rust 代码规范自动修复,必须靠 rustfmt + LSP 插件联动实现,且“保存即格式化”不是默认行为,需要手动启用并验证 rustfmt 可执行路径。
rustfmt 必须全局可用,且 Sublime 能调用到
rustfmt 不是 Sublime 内置功能,它是一个独立的二进制工具,由 cargo install rustfmt 安装,默认放在 $HOME/.cargo/bin/rustfmt(Linux/macOS)或 %USERPROFILE%\.cargo\bin\rustfmt.exe(Windows)。Sublime 启动时不会自动加载 shell 的 PATH,所以即使终端里 rustfmt --version 成功,Sublime 控制台里也可能报 FileNotFoundError。
- 在 Sublime 控制台(
Ctrl+`)运行:import subprocess; subprocess.run(['rustfmt', '--version']),确认能输出版本号 - 如果失败,检查
os.environ.get('PATH')是否包含 rustfmt 所在目录;Windows 用户务必把%USERPROFILE%\.cargo\bin加入「系统环境变量」,加完彻底退出 Sublime 再重开 - macOS/Linux 用户若用 zsh/fish,仅改
~/.zshrc不够——GUI 启动的 Sublime 不读它,推荐从终端用subl命令打开项目
LSP-rust-analyzer 需开启 format_on_save
Sublime Text 4 推荐用 LSP + LSP-rust-analyzer 组合,而不是旧版 RustEnhanced 或 RustAutoComplete。rust-analyzer 内置 rustfmt 调用能力,但默认不开启保存时格式化。
- 打开
Preferences → Package Settings → LSP → Settings,在用户设置中加入:{ "clients": { "rust-analyzer": { "enabled": true, "settings": { "rust-analyzer.checkOnSave.command": "check", "rust-analyzer.formatOnSave.enabled": true } } } } - 确保
LSP-rust-analyzer插件已安装,并且它成功拉起了 rust-analyzer 进程(可在 Sublime 状态栏右下角看到 “LSP: rust-analyzer”) - 注意:该设置只对当前项目生效;若想全局启用,需在
Packages/User/LSP.sublime-settings中配置,但更推荐项目级.sublime-project文件控制
别信 “自动识别”,.rs 文件必须被正确识别为 Rust
Sublime 不会根据文件后缀自动切换语法模式。.rs 文件默认是 Plain Text,此时 LSP 客户端根本不会激活,formatOnSave 彻底失效。
- 打开任意
.rs文件,点右下角状态栏(显示Plain Text的地方),手动选Rust - 如果列表里没有
Rust,说明RustEnhanced或LSP-rust-analyzer未正确加载;二者不能共存,卸载RustEnhanced,只留LSP-rust-analyzer+LSP - 可设为默认:进入
View → Syntax → Open all with current extension as… → Rust,避免每次手动切
最容易被忽略的是 rustfmt 的执行权限和项目根路径——如果当前文件不在 Cargo 工作区(即没有 Cargo.toml),rust-analyzer 可能 fallback 到默认配置,导致缩进风格与团队不一致。建议所有 Rust 项目都以 cargo new 初始化,并确保 .sublime-project 中 "folders" 指向项目根目录。


















