lsp插件无提示的根本原因是语言服务器未启动,需依次确认文件scope是否正确、控制台有无启动错误、command路径能否手动执行。

装了 LSP 插件却没提示?不是插件坏了,是语言服务器根本没跑起来——LSP 本身只是个通信中间层,不带任何语言能力,所有“补全失效”“跳转灰掉”“悬停空白”都指向后端服务缺失或错配。
为什么 LSP 状态栏不显示语言名,且 Ctrl+Shift+Space 没反应
这是最典型的“服务器未启动”信号。别急着重装插件,先确认三件事:
- 按
Ctrl+Alt+Shift+P(Windows/Linux)或Cmd+Alt+Shift+P(macOS)看当前文件 scope:必须是source.python、source.ts或source.tsx,而不是text.plain—— 后者说明 Sublime 根本没识别出文件类型,后续所有配置都会被忽略 - 打开 Sublime 控制台(
Ctrl+`),搜索LSP或error,重点看有没有Failed to start server: exit code 1或spawn xxx ENOENT—— 前者代表命令执行失败,后者代表路径根本找不到 - 检查配置里的
command数组是否能手动运行:在终端里粘贴整个数组(如pyright --stdio),报command not found就得补 PATH 或改用绝对路径
pyright 配置后只补全变量名,不显示类型和 docstring
默认的 pylsp 功能有限,pyright 是更优解,但它的行为高度依赖项目配置:
- 必须用
npm install -g pyright安装(不是 pip),然后用which pyright(macOS/Linux)或where pyright(Windows)取绝对路径填进command字段,写成["pyright", "--stdio"]必然失败 - 项目根目录必须存在
pyrightconfig.json或pyproject.toml(哪怕空文件),否则它以“宽松模式”运行,类型推导直接降级 - 如果用了虚拟环境,
pyright默认不感知 venv,需在pyrightconfig.json里显式指定:{"pythonPath": "./venv/bin/python"}(macOS/Linux)或{"pythonPath": ".\venv\Scripts\python.exe"}(Windows)
typescript-language-server 补全卡顿、JSX 不识别、路径别名失效
问题不在 LSP 插件,而在 tsserver 没读到你项目的 tsconfig.json,或读到了但解析失败:
- 全局安装的
typescript-language-server不会自动查找项目里的node_modules/typescript,必须强制它走 workspace tsdk:在项目根运行npm install typescript --save-dev - 配置中不能只写
["typescript-language-server", "--stdio"],要加initializationOptions显式指定路径:{"typescript.tsdk": "./node_modules/typescript/lib"} - JSX 支持依赖
tsconfig.json中"jsx": "preserve"或类似设置;路径别名(paths)失效通常是因为baseUrl没配,或compilerOptions没展开
多个语言服务器共存时,为什么只有其中一个生效
因为 LSP 的 selector 匹配是排他性的:两个 client 都写了 "selector": "source.python",后加载的那个会覆盖前一个。
- Python + TypeScript 共存没问题,只要它们的 selector 分别是
source.python和source.ts, source.tsx—— 这是正交的 - 想让
ruff-lsp和pyright同时处理.py文件?不行。要么拆作用域(比如用source.python.ruff自定义语法),要么只留一个负责补全/跳转,另一个仅做诊断(通过"settings": {"ruff.lintOnSave": true}控制) - Windows 用户特别注意:
command中路径含空格必须用双引号包裹整个路径,且斜杠统一用正斜杠(如"C:/Users/My Name/AppData/Roaming/npm/pyright.cmd")
真正难的从来不是“怎么配”,而是当状态栏没反应、控制台没日志、补全只冒几个关键字时,你得知道该去哪看、该信哪条线索——scope、command 可执行性、项目级配置文件是否存在,这三处漏掉任何一环,LSP 就只是个摆设。











