能,但需通过LSP插件配置ruff-lsp语言服务器,而非直接使用ruff CLI;须安装ruff-lsp、正确设置command路径与selector,并确保pyproject.toml位于项目根目录且格式正确。

Sublime Text 能不能直接用 Ruff?
能,但不是“开箱即用”。Sublime Text 本身不内置 Ruff 支持,必须通过 LSP + ruff-lsp 组合实现——注意不是装 ruff CLI 工具本身,而是它的语言服务器变体 ruff-lsp。直接装 ruff 命令行工具对 Sublime 的实时诊断/格式化无效。
安装 ruff-lsp 并配置 LSP 客户端
先确保已安装 LSP 插件(通过 Package Control),再手动配置客户端:
- 打开
Preferences → Package Settings → LSP → Settings - 在
"clients"字典中添加以下块(注意缩进和逗号):
"ruff-lsp": {
"command": ["ruff-lsp"],
"selector": "source.python",
"enabled": true,
"initializationOptions": {
"settings": {
"lint": {
"enable": true,
"diagnostics": true
},
"format": {
"enable": true
}
}
}
}关键点:
-
ruff-lsp需要单独安装:运行pip install ruff-lsp或uv tool install ruff-lsp(推荐后者) - 不要和
pylsp共用"selector": "source.python",否则会冲突;如已启用 pylsp,需禁用它或改用更细粒度 selector(如source.python - meta.function不现实,建议只留一个) - 若启动失败,查
LSP: Toggle Log Panel,常见错误是"command not found"——说明ruff-lsp没在$PATH中,此时应改用绝对路径,例如"/Users/you/.local/bin/ruff-lsp"
Ruff 格式化触发方式与限制
Sublime Text 中无法像 VS Code 那样按 Shift+Alt+F 直接格式化——LSP 协议在 Sublime 中默认不暴露“格式化当前文件”命令入口。实际可用方式只有两种:
仅使用 Python 将 Claw Code 虚拟化框架与 OpenClaw 集成,提供 184 种工具和 200 多条命令,用于安全分析和代码质量...
立即学习“Python免费学习笔记(深入)”;
- 保存时自动格式化:需在 LSP 设置中开启
"auto_complete": true并确保ruff-lsp的"format.enable"为true(上面已配) - 手动触发:通过
Ctrl+Shift+P → LSP: Format Document(前提是服务已就绪且无 selector 冲突) - 不支持 Jupyter Notebook 单元格格式化(
ruff-lsp当前不识别source.python.embedded等 notebook scope)
另外,ruff-lsp 默认不执行 --unsafe-fixes,比如重写类型注解、删除未使用变量等高风险修复不会发生,这是安全设计,无法绕过。
为什么改了 pyproject.toml 但没生效?
因为 ruff-lsp 默认不自动监听配置文件变更,也不读取项目根目录外的 pyproject.toml。必须满足:
- 配置文件必须位于当前打开的 Sublime 项目根目录(不是任意父目录)
- 文件名必须是
pyproject.toml,ruff.toml不被ruff-lsp支持(仅 CLI 支持) - 修改后需重启 Sublime 或手动重载 LSP 客户端(
Ctrl+Shift+P → LSP: Restart Servers) - 常见误配:
[tool.ruff.lint]是错的,正确是[tool.ruff],且select/ignore必须是数组,如select = ["F401", "E501"]
最易忽略的一点:Sublime 的 LSP 客户端不会把当前文件路径透传给 ruff-lsp 做“单文件检查”,它只基于打开的 buffer 内容做增量诊断——所以 ruff check path/to/file.py 的结果可能和 LSP 提示不一致,这不是 bug,是设计差异。

















