Sublime Text 需通过 LSP 插件与 ruff-lsp 协同实现 Python 静态分析和保存即格式化,关键在于正确安装 ruff-lsp、显式配置路径、项目根目录含 pyproject.toml、启用 format = true 并开启 LSP 的 format_on_save,调试需依赖日志而非重装。

Sublime Text 本身不内置 Python 静态分析或格式化能力,但通过 ruff-lsp 可以实现实时 linting 和保存即修复——前提是正确配置 LSP 插件与 Ruff 的协同关系,否则容易卡在“有提示没修复”或“格式化不生效”状态。
确认已安装 LSP 插件和 ruff-lsp
Sublime Text 必须先装好 LSP 插件(不是 LSP-json 或其他变体),再手动安装 ruff-lsp 服务。仅装 ruff CLI 不够,ruff-lsp 是独立的 Language Server 实现,不是 ruff 自带的子命令。
-
LSP插件需从 Package Control 安装,启用后会在菜单栏出现 LSP 项 -
ruff-lsp不能用pip install ruff-lsp(不存在这个包),必须用npm install -g ruff-lsp或从 GitHub release 下载预编译二进制(推荐 macOS/Linux) - 验证是否可用:
ruff-lsp --version应输出类似0.7.x;若报 command not found,说明没加到$PATH,Sublime Text 默认不读 shell 的 PATH,需在LSP.sublime-settings中显式指定"command"
配置 LSP 识别 Python 项目并启用 ruff-lsp
Sublime Text 不会自动把当前文件夹当 Python 项目,ruff-lsp 需要明确知道它该在哪个目录下读 pyproject.toml 并加载规则。靠文件后缀 .py 不足以触发完整 linting。
- 在项目根目录确保存在
pyproject.toml,且至少包含[tool.ruff]节(哪怕为空) - 打开 Sublime Text 后,用
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)调出命令面板,运行 LSP: Enable Language Server Globally → 选ruff-lsp,这步决定全局启用 - 更稳妥的做法是:右键项目文件夹 → Open Folder as Project,然后在
Project → Edit Project中添加以下字段,强制绑定 Python + ruff-lsp:
"settings": {
"LSP": {
"ruff-lsp": {
"enabled": true,
"settings": {
"ruff": {
"executable": "/usr/local/bin/ruff-lsp"
}
}
}
}
}
路径 /usr/local/bin/ruff-lsp 需替换成你实际安装的位置,可通过 which ruff-lsp 查看。
图片提示词生成器?不止如此。 马甲系统 —— 把脑海中的画面,翻译成AI能理解的专业表达。 用得越多,它越懂你:首次需要多问几句确认方向,用久了几乎一说就懂。 用得越多,它越快:缓存机制让后续对话越来越省。 RAG进化:成功案例持续入库,越跑越聪明。 输入「新手指南」查看完整功能介绍
立即学习“Python免费学习笔记(深入)”;
保存时自动格式化失效的常见原因
Sublime Text 的“保存即格式化”依赖两个条件同时满足:LSP 正确响应 textDocument/formatting 请求,且编辑器配置允许在保存时触发。缺一不可。
- 检查
LSP.sublime-settings是否含"auto_complete": true和"format_on_save": true(注意这是 LSP 插件的设置,不是 Sublime 原生设置) -
ruff-lsp默认不启用格式化功能,必须在pyproject.toml中显式开启:[tool.ruff]下加format = true,否则ruff-lsp收到格式化请求也会返回空响应 - 如果用了
select = ["E", "F"]但漏了"I"(import 相关规则),ruff-lsp可能跳过 import 排序——这不是 bug,是规则控制逻辑,isort功能已被整合进 ruff,但受select控制 - Windows 用户常遇到路径分隔符问题:
ruff-lsp在 Windows 上对pyproject.toml中的exclude路径(如"tests\")敏感,建议统一用正斜杠"tests/"
调试 ruff-lsp 无反应的最快方式
当编辑器里看不到任何波浪线或保存后毫无变化,不要猜,直接看日志。LSP 插件的日志开关藏得深,但它是唯一能暴露连接失败、配置未加载、规则被忽略等真实原因的出口。
- 打开
Tools → Developer → Show Console,输入:sublime.log_commands(True),再触发一次保存操作,观察控制台是否有LSP相关 error - 更关键的是打开 LSP 日志:
Preferences → Package Settings → LSP → Settings,在右侧用户设置中加:"log_stderr": true, "log_server": true,重启 Sublime,错误会输出到Console里 - 典型报错如
Failed to start server: ruff-lsp not found表明路径不对;Config not loaded for /path/to/file.py表明没识别到项目根或pyproject.toml格式错 - 别依赖
ruff check --fix命令行结果来判断 LSP 行为——CLI 和 LSP 使用同一套配置,但加载时机、缓存策略、工作目录都不同,CLI 成功 ≠ LSP 正常
真正难调的点不在安装步骤,而在 Sublime Text 对 PATH 和项目上下文的静默处理——它不会告诉你“我找不到 ruff-lsp”,只会安静地不做事。盯着日志看,比反复重装插件有效十倍。

















