LSP 补全等功能生效仅取决于三件事:Package Control 可用、语言服务器进程能启动、文件 scope 与配置完全一致;需正确安装 LSP 插件及对应服务器(如 pyright),并精准配置 command、selector 和 syntaxes。

装了 LSP 插件 ≠ 有补全、跳转或悬停——真正起效只取决于三件事:Package Control 能用、语言服务器进程能被 Sublime 启动、当前文件的 scope 和配置里写的完全一致。其他全是干扰项。
确认 Package Control 已就位,否则所有操作都白搭
按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Package Control: Install Package。如果命令不出现,说明没装 Package Control。
- 打开
View → Show Console,粘贴官方安装脚本(含哈希校验),回车执行 - 必须重启 Sublime,否则新插件无法加载
- 重启后再次按
Ctrl+Shift+P验证该命令是否可触发
装 LSP 插件 + 对应语言服务器,路径必须可执行
LSP 插件本身不带任何语义能力,pyright、typescript-language-server、gopls 这些才是干活的。装错包、路径不对、没进 PATH,LSP 就是哑巴。
- 用
Package Control: Install Package搜索并安装LSP(作者:sublimelsp) - Python 推荐
npm install -g pyright(不是 pip),然后运行which pyright(macOS/Linux)或where pyright(Windows)取绝对路径 - TypeScript 必须用
npm install -g typescript-language-server typescript,不能只装tsserver - Windows 用户注意:
command中的路径若含空格或特殊字符,建议用正斜杠或双反斜杠,例如:"C:/Users/me/AppData/Roaming/npm/pyright.cmd"
填对 clients 配置里的 command / selector / scopes
配置写在 Preferences → Package Settings → LSP → Settings 右侧用户设置中。重点不是套模板,而是让 Sublime 知道“这个文件该找谁”。
-
command必须是数组形式,如["pyright", "--stdio"];全局安装的命令若不在PATH,就得填绝对路径 -
selector(新版推荐用这个字段,比scopes更准)必须和当前文件实际作用域一致:打开.py文件后按Ctrl+Alt+Shift+P,状态栏显示source.python才对;若显示source.python.django,就得写成"selector": "source.python, source.python.django" -
syntaxes必须匹配 Sublime 4+ 默认语法:"Packages/Python/Python.sublime-syntax",不是旧版.tmLanguage - 别把多个语言服务器配成相同
selector,否则后加载的会覆盖前一个
Tab 不确认补全?那是 Sublime 自身设置没开
补全框弹出来了,但按 Tab 只缩进、不选中——这不是 LSP 的问题,是 Sublime 默认禁用该行为。
- 打开
Preferences → Settings(用户设置),确保有这三项: "auto_complete": true-
"auto_complete_commit_on_tab": true(最关键,缺它等于没开补全) "auto_complete_with_fields": true- 如果仍无效,检查是否被
AutoFileName或All Autocomplete类插件劫持了Tab行为
最常被忽略的其实是 selector 和实际 scope 的细微差异,比如 source.tsx 和 source.ts 分开配,或者项目里用了自定义语法高亮导致 scope 偏移。验证前先关掉所有第三方语法插件,用原生语法跑一次,再逐步加回来。


















