装了LSP插件≠有补全、跳转、悬停,真正起作用的是语言服务器是否运行、command路径是否可执行、当前文件scope是否匹配——三者缺一即静默失效;必须先装好Package Control,再分步安装LSP插件和对应语言服务器(如pyright),并严格配置command、scopes、syntaxes,最后通过右下角状态和Ctrl+Alt+Shift+P验证scope。

装了 LSP 插件 ≠ 有补全、跳转、悬停——真正起作用的是语言服务器是否跑起来、command 路径能否执行、当前文件 scope 是否匹配。三者缺一,LSP 就静默失效,且不报错。
Package Control 没装好,后面全白搭
Sublime 默认没有包管理器,Package Control: Install Package 命令调不出来,所有后续操作都会卡死。按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)输入该命令,能弹出列表才算成功。
- 如果提示 “command not found”,打开
View → Show Console,粘贴官方安装脚本(含哈希校验),回车执行 - 执行完必须重启 Sublime,否则新插件无法加载
- 重启后再次用
Ctrl+Shift+P验证命令是否可触发
LSP 插件和语言服务器必须分两步装
LSP 插件只是通信层,不带任何语义能力;真正干活的是语言服务器进程(如 pyright、typescript-language-server)。只装插件不装服务器,等于买了路由器但没接网线。
- 用
Ctrl+Shift+P→Package Control: Install Package先装LSP(作者sublimelsp) - 再搜
LSP-pyright(Python 推荐)或LSP-typescript(TS/JS),它们自带下载逻辑和默认路径,比裸装更稳 - 装完后必须手动执行
LSP: Enable Language Server Globally,勾选对应服务器——这步不做,右下角永远显示Plain Text -
LSP-pyright和旧插件Anaconda不能共存,会抢补全通道,导致 CPU 飙升、签名不显示,冲突时直接禁用Anaconda
command 路径写错,LSP 就是哑巴
command 字段填错,语言服务器根本启动不了。常见错误不是配置格式不对,而是路径不可达或权限不足。
- 不要写
["pyright", "--stdio"]:系统找不到命令,日志里会出现spawn pyright ENOENT;必须用which pyright(macOS/Linux)或where pyright(Windows)取绝对路径,例如["/usr/local/bin/pyright", "--stdio"] - Windows 上路径含空格或需
.cmd后缀:如C:/Users/My Name/AppData/Roaming/npm/pyright.cmd,整个路径必须用双引号包裹 - 路径中混用反斜杠和正斜杠会解析失败:统一用正斜杠或双反斜杠,例如
"C:\Users\Name\AppData\Roaming\npm\pyright.cmd" - 在终端手动运行配置里的
command数组(如pyright --stdio),报command not found就得补PATH或改用绝对路径
scope 和 syntaxes 不对,LSP 根本不加载
哪怕服务器进程跑起来了,如果文件 scope 或语法不匹配,LSP 客户端也不会发任何请求。这不是 Bug,是设计机制。
- 打开
.py文件后按Ctrl+Alt+Shift+P(Windows/Linux)或Cmd+Alt+Shift+P(macOS),状态栏必须显示source.python;若显示source.python.django或text.plain,就得把scope写全 -
syntaxes必须指向 Sublime 4+ 自带语法:Packages/Python/Python.sublime-syntax,不是旧版.tmLanguage - 右下角点击当前语法名(如显示 “Plain Text”),手动选 “Python”;更彻底的做法是确保当前文件使用正确 syntax,而不是依赖后缀自动识别
- 如果用了
Anaconda或其他第三方插件,它可能覆盖原生语法,建议临时禁用再试
最常被忽略的是 Sublime 的语法识别机制——它不看文件后缀,只认当前文件的 syntax 和 scopes,而这两者又极易被第三方插件干扰。验证时别只盯着文件名,一定要按 Ctrl+Alt+Shift+P 看实时 scope 输出。


















