ruff-lsp在sublime text中不显示错误的主因是服务器未启动,而非配置失效;需确认scope为source.python、ruff-lsp命令可执行且路径写死,再禁用其hover/completion以避免与pyright冲突。

Sublime Text 本身不带 Python 语法分析能力,但通过 ruff-lsp 可以在保存或输入时毫秒级反馈 PEP8、未使用导入、重复定义等违规——前提是它真能跑起来。很多人装完没反应,不是配置错,而是根本没启动成功。
为什么 ruff-lsp 在 Sublime Text 里不显示错误?
最常见原因是语言服务器压根没启动,而不是规则没生效。LSP 插件只是个中转站,ruff-lsp 进程必须实际运行才能返回诊断信息。
- 按
Ctrl+Alt+Shift+P(Windows/Linux)或Cmd+Alt+Shift+P(macOS)确认当前文件 scope 是source.python,不是text.plain - 打开 Sublime 控制台(
Ctrl+`),搜索LSP或error,重点看有没有Failed to start server: exit code 1或spawn ruff-lsp ENOENT -
ruff-lsp必须是可执行命令:在终端里直接运行ruff-lsp --help,失败就说明没装好或不在PATH里
ruff-lsp 的安装路径必须绝对可靠
Sublime 不继承 shell 的 PATH,尤其在 macOS 或 Linux 下用 pyenv、conda 或自定义虚拟环境时,ruff-lsp 很可能找不到。
快速生成专业的 Python 脚本和应用代码。一键创建完整项目结构,支持CLI、API、爬虫、Bot、Django等多种项目类型,包含完整的项目结构、配置文件、依赖管理、测试、README和文档。
- 优先用
pip install ruff-lsp全局安装(避免虚拟环境路径问题) - 若必须用虚拟环境,获取绝对路径:
which ruff-lsp(macOS/Linux)或where ruff-lsp(Windows) - 在
LSP.sublime-settings中写死路径,例如:["/Users/you/.local/bin/ruff-lsp", "--stdio"] - 别信
["ruff-lsp", "--stdio"]—— 这在 Sublime 里大概率失败
如何让 ruff-lsp 和其他 Python LSP(如 Pyright)共存?
Pyright 负责类型检查和跳转,ruff-lsp 负责格式、导入、风格,两者功能不重叠,但默认会抢 hover 和 completion 功能。
- 在
LSP.sublime-settings的ruff_lsp配置块里禁用干扰项:"settings": {"hoverProvider": false, "completionProvider": false} - 确保 Pyright 的配置已启用
hoverProvider和completionProvider,否则悬停提示和补全会消失 - 如果项目有
pyproject.toml,ruff-lsp会自动读取其中的[tool.ruff]段落;不需要额外配置规则开关
真正卡住人的从来不是怎么配,而是 ruff-lsp 进程是否真的起来了、是否在正确的 Python scope 下运行、以及它能不能拿到项目根目录下的 pyproject.toml。这三个点漏掉任何一个,它就安静得像没装过。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










