Sublime Text启用LSP功能的核心是语言服务器正确启动并识别文件:需先装好Package Control,再分步安装LSP插件及对应服务器(如pyright),确认右下角显示LSP: pyright等标识,且command为绝对路径、scopes为source.python、syntaxes匹配Python.sublime-syntax,项目根须有pyrightconfig.json等配置文件。

Sublime Text 要真正用上 LSP 的补全、跳转、悬停这些功能,不是装个插件就完事——核心卡点永远在「语言服务器是否被正确启动并识别当前文件」。没看到右下角显示 LSP: pyright 或 LSP: clangd,所有功能都等于没开。
Package Control 没装好,后面全白忙
所有 LSP 相关操作都依赖 Package Control,它不装,LSP 插件和 LSP-pyright 等语言服务器包根本进不来。别信“我点了 Install Package 就算装了”——得亲手验证:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Package Control: Install Package - 如果弹出菜单 → 成功;如果提示
command not found→ 还没装 - 此时必须打开控制台(
View → Show Console),粘贴官方安装代码并回车,之后重启 Sublime
跳过这步,后续装的任何 LSP 插件都会静默失败,连日志都不报。
LSP 插件和语言服务器必须分两步装,且顺序不能反
LSP(作者 sublimelsp)只是通信层,不解析语法、不推导类型;真正干活的是 pyright、clangd、typescript-language-server 这类语言服务器。只装插件不装服务器,就像买了网线但没拉宽带。
- 先通过 Package Control 安装
LSP - 再搜
LSP-pyright(Python)、LSP-svelte(Svelte)或LSP-clangd(C++)——注意:不是裸装svelte-language-server或clangd二进制,那些包不带自动路径注册逻辑 - 装完后必须手动执行
LSP: Enable Language Server Globally并勾选对应服务器,否则右下角永远是Plain Text
尤其注意:LSP-pyright 和旧插件 Anaconda 会抢补全通道,CPU 飙升、签名不显示,冲突时直接禁用 Anaconda。
command、scopes、syntaxes 三项配置写错一个,LSP 就不认你
很多用户把 command 写成 ["pyright", "--stdio"],结果日志里全是 spawn pyright ENOENT——因为系统 PATH 没包含它,或者根本没全局安装。而 scopes 和 syntaxes 错配,则会导致“文件明明是 .py,LSP 就是不启动”。
-
command必须是绝对路径数组,例如["/usr/local/bin/pyright", "--stdio"](macOS/Linux)或["C:/Users/Name/AppData/Roaming/npm/pyright.cmd", "--stdio"](Windows) -
scopes必须匹配当前文件作用域,用Ctrl+Alt+Shift+P查看,Python 是source.python,Svelte 是source.svelte,C++ 是source.c++或source.cpp -
syntaxes必须指向 Sublime 内置语法路径,例如 Python 是Packages/Python/Python.sublime-syntax,不是旧版的.tmLanguage
这三个字段只要有一个不严格匹配,LSP 就不会为该文件启动服务器,状态栏也不会变。
项目级配置缺失,类型推导直接降级
就算 LSP 显示连通了,Python 补全只有变量名、JSX 不识别、Svelte 的 $lib 跳不到——问题不在 LSP 或服务器本身,而在项目根目录缺关键配置文件。
- Python:必须有
pyrightconfig.json或pyproject.toml(哪怕空文件),否则 pyright 启动在宽松模式,不读虚拟环境路径 - TypeScript/Svelte:必须有
tsconfig.json,且compilerOptions.types包含"svelte",paths正确定义$lib/* - C++:必须有
compile_commands.json,且默认放在项目根目录;若在build/下,需在 LSP 配置中加"initializationOptions": {"compilationDatabasePath": "build"}
改完这些配置后,必须手动执行 LSP: Restart Servers——LSP 不会自动监听文件变更,这点极易被忽略。



















