package control是lsp前提,必须先安装并重启;再装lsp插件和对应语言服务器(如pyright),手动启用并严格配置command、scopes、syntaxes三项参数,否则补全静默失效。

Package Control 不在,LSP 就是摆设
按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)输 Package Control: Install Package,没反应?说明 Package Control 根本没装。这不是可选项,是硬门槛。
打开 View → Show Console,粘贴官方安装脚本(含哈希校验),回车执行;执行完必须重启 Sublime Text——不重启,新插件加载不了,后续所有 LSP 操作都静默失败。
重启后再次用 Ctrl+Shift+P 验证命令是否可触发。别跳过这步直接搜 LSP,90% 的“配置无效”问题源头就在这儿。
LSP 插件和语言服务器必须分开装,且顺序不能反
LSP 插件只是通信桥,不干解析、补全、跳转的活;真正干活的是语言服务器进程,比如 pyright、typescript-language-server、clangd。
正确流程是:
- 先用
Package Control: Install Package装LSP(作者sublimelsp) - 再装对应语言的服务器插件:如
LSP-pyright(Python)、LSP-typescript(TS/JS)、LSP-clangd(C/C++) - 装完后必须手动运行
LSP: Enable Language Server Globally并勾选对应项——不点这个,右下角永远显示Plain Text
只装插件不装服务器,等于买了路由器但没接网线;只装服务器不启用,LSP 客户端压根不会发请求。
command/scopes/syntaxes 三者错一个,补全就静默失效
在 Preferences → Package Settings → LSP → Settings 右侧用户设置中填 "clients",以下三项必须严丝合缝:
-
"command":必须是可执行路径数组,如["/usr/local/bin/pyright-langserver", "--stdio"];Windows 上单反斜杠会解析失败,得用双反斜杠或正斜杠:"C:/Users/me/AppData/Roaming/npm/pyright-langserver.cmd" -
"scopes":打开 .py 文件后按Ctrl+Alt+Shift+P看状态栏,显示source.python才对;若显示source.python.django,就得把 scope 写全 -
"syntaxes":Sublime 4+ 默认语法路径是"Packages/Python/Python.sublime-syntax",不是旧版.tmLanguage;第三方插件(如 Anaconda)可能覆盖原生语法,建议临时禁用再试
三者缺一,LSP 客户端连启动日志都不打,更别说补全了。
Tab 键不确认补全?不是 LSP 问题,是 Sublime 自身设置
补全框弹出来了,按 Tab 却只插缩进、不选中高亮项?这不是 LSP 配置错了,是 Sublime 默认禁用了该行为。
必须在用户设置(Preferences → Settings 右侧)里显式加这几行:
"auto_complete": true, "auto_complete_commit_on_tab": true, "auto_complete_with_fields": true
尤其 "auto_complete_commit_on_tab": true 是关键,缺它等于没开补全。如果仍无效,检查是否被 AutoFileName 或 All Autocomplete 劫持了 Tab 行为——临时禁用它们测试即可。
最常被忽略的其实是项目级约束:比如 pyright 要求项目根目录存在 pyrightconfig.json 或 pyproject.toml(哪怕空文件),否则直接降级为宽松模式,类型推导全失效;clangd 必须有 compile_commands.json,且路径要配对。这些不是“可选优化”,是生效前提。











