需确认右下角显示“lsp: ready”,否则服务器未启动;常见问题包括无补全、跳转失效、控制台无日志,主因是path配置错误、语法识别失败、项目结构缺失或插件冲突。

怎么确认 LSP 插件真在干活?
LSP 插件装完不等于就生效了——它默认是“待机”状态,一个语言服务器都不会自动启动。你得亲眼看到 LSP: ready 出现在右下角状态栏,才算真正连上了后端服务。
常见错误现象包括:
- 打开 .py 文件,没提示、没补全、F12 跳转无效
- 控制台(Ctrl+`)里完全看不到 LSP: starting server 这类日志
- 右键菜单里压根没有 Rename symbol 或 Go to Definition 选项
这通常说明:
-
Package Control没装好(先按Ctrl+Shift+P输入Package Control: Install Package看能否调出) - 语言服务器二进制文件不在系统
PATH中,或配置里的command路径写错了(比如 Windows 下写了单反斜杠导致路径解析失败) - 文件语法识别失败(右下角显示的是
Plain Text而不是Python),可按Ctrl+Alt+Shift+P查看当前 scope 是否为source.python
Python 补全和跳转为什么总失效?
不是 pylsp 不行,而是 python-lsp-server(官方维护版)已取代旧版 pylsp;且它严重依赖项目结构——单个打开 main.py,没有 pyproject.toml 或 setup.py,服务器大概率拒绝构建完整 AST 上下文,导致跳转到第三方库失败、重命名报 No result returned from server。
实操建议:
- 安装用 pip install python-lsp-server[all],别用弃用的 pylsp
- 在项目**根目录**下用 Sublime 打开整个文件夹(而不是只打开某个 .py 文件)
- 确保 clients 配置中 scopes 和 syntaxes 完全匹配:
"scopes": ["source.python"]"syntaxes": ["Packages/Python/Python.sublime-syntax"]
- 若仍跳转不准,检查是否启用了其他干扰插件(如 SublimeCodeIntel 或 Anaconda,它们会和 LSP 冲突)
JavaScript/TS 参数提示(Signature Help)不弹出来?
这不是 Sublime 的锅,而是 typescript-language-server 默认不监听逗号后触发,且必须光标落在括号内(fetch(|) 或 fetch(url, |)),停在函数名上或括号外都不行。
关键点:
- 必须全局安装 typescript-language-server:npm install -g typescript-language-server(只装 typescript 不够)
- 配置中 command 要带 --stdio:["typescript-language-server", "--stdio"]
- 自动触发有延迟,可手动唤起:Ctrl+Shift+Space(Windows/Linux)
- 如果提示框一闪而过,检查 LSP.sublime-settings 里 "show_symbol_info_tooltip" 是否为 true,以及 "hover_delay_ms" 是否设得太小(低于 300 易误失)
clangd 为什么 C++ 头文件都找不到?
clangd 不靠猜,它靠 compile_commands.json 知道每个 .cpp 文件该用什么宏、包含哪些路径。没这个文件,或它不在项目根目录,clangd 就只能当个“哑巴服务器”——语法高亮有,但跳转、补全基本瘫痪。
解决路径很直接:
- CMake 项目:在 build 目录运行 cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..,生成文件后**复制到源码根目录**(LSP 默认只查这里)
- 如果必须放别处,就在 LSP 设置里显式指定:"settings": { "compilationDatabasePath": "./build" }
- Windows 用户注意:command 中路径推荐用正斜杠 / 或双反斜杠 \,单反斜杠 会被 Python 解释为转义符
typescript-language-server 默认不监听逗号后触发,且必须光标落在括号内(fetch(|) 或 fetch(url, |)),停在函数名上或括号外都不行。
关键点:
- 必须全局安装 typescript-language-server:npm install -g typescript-language-server(只装 typescript 不够)
- 配置中 command 要带 --stdio:["typescript-language-server", "--stdio"]
- 自动触发有延迟,可手动唤起:Ctrl+Shift+Space(Windows/Linux)
- 如果提示框一闪而过,检查 LSP.sublime-settings 里 "show_symbol_info_tooltip" 是否为 true,以及 "hover_delay_ms" 是否设得太小(低于 300 易误失)
clangd 为什么 C++ 头文件都找不到?
clangd 不靠猜,它靠 compile_commands.json 知道每个 .cpp 文件该用什么宏、包含哪些路径。没这个文件,或它不在项目根目录,clangd 就只能当个“哑巴服务器”——语法高亮有,但跳转、补全基本瘫痪。
解决路径很直接:
- CMake 项目:在 build 目录运行 cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..,生成文件后**复制到源码根目录**(LSP 默认只查这里)
- 如果必须放别处,就在 LSP 设置里显式指定:"settings": { "compilationDatabasePath": "./build" }
- Windows 用户注意:command 中路径推荐用正斜杠 / 或双反斜杠 \,单反斜杠 会被 Python 解释为转义符
LSP 的能力上限,从来不由 Sublime 决定,而取决于语言服务器是否跑稳、workspace 是否初始化成功、以及你有没有给它喂对上下文。很多“不工作”,其实只是它安静地卡在了第一步。











