sublime text启用lsp需同时满足package control已安装、语言服务器可执行且路径正确、当前文件scope与配置严格匹配三条件;缺一则静默失效。

Sublime Text 要真正用上 LSP 的补全、跳转、悬停,不是装个插件就完事——它必须同时满足三个硬条件:Package Control 已安装、语言服务器进程能被 subl 正确调起、当前文件的 scope 与配置完全匹配。缺一就会静默失效,连错误提示都不给。
Package Control 没装好,LSP 根本启动不了
所有后续操作都依赖它。按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Package Control: Install Package。如果命令不出现,或者提示 command not found,说明 Package Control 根本没装。
- 打开
View → Show Console,粘贴官方安装脚本(含哈希校验),回车执行 - 执行完必须重启 Sublime,否则新插件无法加载
- 重启后再次按
Ctrl+Shift+P验证命令是否可触发
LSP-pyright 启动失败的典型现象和排查路径
右下角没显示 LSP: pyright 或只显示 LSP: ready,就是最明确的“服务器根本没起来”信号。别重装插件,先查这三件事:
- 按
Ctrl+Alt+Shift+P(Windows/Linux)或Cmd+Alt+Shift+P(macOS),确认状态栏输出是source.python,不是text.plain或source.python.django - 打开控制台(
Ctrl+`),搜索LSP或error,重点看有没有Failed to start server或spawn pyright ENOENT - 在终端手动运行配置里的
command数组,例如pyright --stdio;报command not found就得补PATH或改用绝对路径(which pyright或where pyright取值)
Tab 键不确认补全?不是插件问题,是 Sublime 默认禁用
补全弹窗出来了,但按 Tab 只插缩进——这不是 LSP 没配好,而是 Sublime 的核心行为开关没开。
- 打开
Preferences → Settings(用户侧),确保右侧有:"auto_complete_commit_on_tab": true(最关键) - 同时建议加上:
"auto_complete": true和"auto_complete_with_fields": true - 如果仍无效,检查是否被
AutoFileName或All Autocomplete劫持了Tab行为,临时禁用测试
Python 补全只有变量名,没类型、没 docstring?pyright 在宽松模式下运行
这是 pyright 启动时找不到项目配置的典型表现。它默认不读 pyproject.toml 或 pyrightconfig.json,直接降级为“猜”。
- 项目根目录必须存在
pyrightconfig.json或pyproject.toml(哪怕空文件) -
command字段不能只写["pyright", "--stdio"]:必须用npm install -g pyright安装(不是pip),再填绝对路径 - 若用了虚拟环境,
pyrightconfig.json里要显式指定:{"pythonPath": "./venv/bin/python"}(macOS/Linux)或{"pythonPath": ".\venv\Scripts\python.exe"}(Windows)
最容易被忽略的是作用域(scope)和语法(syntax)的严格匹配——Sublime 不看文件后缀,只认当前文件的 source.python 值;而这个值又极易被第三方插件(如 Anaconda)覆盖。验证时务必用 Ctrl+Alt+Shift+P 看实时输出,而不是凭右下角显示的“Python”字样做判断。











