lsp插件装好不等于有补全,必须同时满足语言服务器成功运行、command路径可执行、文件scope严格匹配三条件;缺一则静默失效,无错误提示。

装了 LSP 插件不等于有补全,真正起作用的是语言服务器是否跑起来、command 路径能否执行、文件 scope 是否匹配——三者缺一不可。
Package Control 没装,LSP 就是摆设
Sublime 默认没有包管理器,Package Control: Install Package 命令调不出来,后续所有操作都卡死。按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)输入该命令,能弹出列表才算就位;如果提示 “command not found”,就得手动装:
- 打开
View → Show Console - 粘贴官方安装脚本(含哈希校验),回车执行
- 重启 Sublime —— 这步不能跳,90% 的“装了没反应”问题根子在这儿
command 路径写错,LSP 就启动不了
LSP.sublime-settings 或具体服务器(如 LSP-pyright)配置里的 command 字段填错,语言服务器根本不会启动。常见错误包括:
- 写成
["pyright"]却没把pyright加进系统PATH,Windows 上尤其容易失败 - 用相对路径或单反斜杠:
"C:\Users\me\AppData\Roaming\npm\pyright.cmd"会解析失败,得写双反斜杠或正斜杠:"C:/Users/me/AppData/Roaming/npm/pyright.cmd" - 没验证可执行性:终端运行
which pyright(macOS/Linux)或where pyright(Windows),失败就得填绝对路径 - Windows 下
tsserver必须带.cmd后缀,否则日志报spawn tsserver ENOENT
文件 scope 不对,LSP 根本不响应
哪怕服务器进程跑起来了,如果当前文件的 scope 不匹配,LSP 客户端也不会发任何请求。实操要点:
- 打开
.py文件后按Ctrl+Alt+Shift+P(Win/Linux)或Cmd+Alt+Shift+P(Mac),状态栏必须显示source.python;若显示source.python.django或text.plain,就得把scope写全 -
syntaxes必须指向 Sublime 4+ 自带语法:"Packages/Python/Python.sublime-syntax",不是旧版.tmLanguage - 多个服务器共存时,
selector不能重叠;比如两个 Python 服务器都设"selector": "source.python",后者会静默覆盖前者
Tab 键不确认补全,其实是 Sublime 默认禁用
很多人看到补全框弹出来了,但按 Tab 只插入缩进——这不是插件问题,是 Sublime 默认行为。必须在用户设置里显式启用:
"auto_complete": true-
"auto_complete_commit_on_tab": true(最关键,缺它就等于没开补全) -
"auto_complete_with_fields": true(支持${1}类模板跳转) - 如果仍无效,检查是否被
AutoFileName或All Autocomplete劫持了Tab行为
最常被忽略的点:LSP-pyright 和 Anaconda 插件会抢补全通道,导致 CPU 飙升、签名不显示;冲突时直接禁用 Anaconda。还有,initializationOptions 在新版 tsserver 和 pyright 中多数已废弃,写了反而导致连接中断。











