LSP插件无提示的根本原因是未安装并配置对应语言服务器,如Python需手动配置pylsp绝对路径,JS/TS应使用本地node_modules路径,还需关闭默认诊断与格式化以避免卡顿。

为什么装了LSP插件却没提示?
多数人卡在这一步:装了 LSP 插件,重启 Sublime Text,写 Python 或 JS 时依然没自动补全、悬停看类型、跳转定义——根本原因是 LSP 本身只是协议桥接器,不自带语言服务器,必须手动安装并配置对应语言的服务器二进制。
常见错误现象包括:no language server found for python、server crashed on startup、输入时完全无响应。本质是 LSP 插件找不到可执行的 pylsp、typescript-language-server 等进程。
- 确认已通过 Package Control 安装
LSP(不是SublimeCodeIntel或旧版SublimeLinter) - 检查 Sublime Text 控制台(
Ctrl+`)是否有LSP: starting server日志,若无,说明未触发启动逻辑 - 默认不启用任何语言服务器,需手动在
Preferences → Package Settings → LSP → Settings中启用并指定路径
Python 怎么配 pylsp 并让它真正工作?
pylsp 是目前 Sublime Text 上最稳定的 Python LSP 实现,但直接 pip install python-lsp-server 后仍可能失败,因为 Sublime 默认用系统 Python 启动,而你可能用的是 conda、pyenv 或虚拟环境中的 Python。
实操建议:
- 先在终端运行
which pylsp或python -m pylsp --version,确认命令可用且版本 ≥ 1.10 - 在
LSP.sublime-settings中配置pylsp为绝对路径,例如:"pylsp": { "command": ["/Users/you/.pyenv/shims/pylsp"], "enabled": true, "languageId": "python", "scopes": ["source.python"], "syntaxes": ["Packages/Python/Python.sublime-syntax"] } - 避免用
python -m pylsp形式——Sublime 的shell=True模式不兼容某些 shell wrapper(如 pyenv shim),容易静默失败 - 如果项目用了
poetry或venv,可在项目根目录放.lsp-config.json并在设置中启用initializationOptions传入plugins.jedi.environment
JS/TS 提示失效?别用 typescript-language-server 的全局 npm 安装
npm 全局安装 typescript-language-server 往往导致路径不可靠或权限问题,尤其 macOS Catalina+ 和 Windows WSL 下更明显。Sublime 的 LSP 插件对 node_modules/.bin 路径解析不稳定。
更稳妥的做法:
- 在项目根目录执行
npm init -y && npm install --save-dev typescript typescript-language-server - 配置
LSP.sublime-settings使用本地路径:"typescript-language-server": { "command": ["./node_modules/.bin/typescript-language-server", "--stdio"], "enabled": true, "languageId": "typescript", "scopes": ["source.ts", "source.tsx"], "syntaxes": [ "Packages/TypeScript-TSX/TypeScript.sublime-syntax", "Packages/TypeScript-TSX/TypeScriptReact.sublime-syntax" ] } - 确保项目有
tsconfig.json,否则服务器会降级为纯 JavaScript 模式,无法识别类型和 import 路径 - 禁用
javascript-typescript-langserver(已废弃)和vscode-typescript(非标准实现),它们与当前 LSP 插件协议不兼容
提示延迟高或 CPU 占满?关掉这些默认选项
LSP 插件默认开启大量诊断和格式化功能,但 Sublime 不是 VS Code,没有后台常驻进程管理,每次文件保存都可能触发全量类型检查,导致卡顿。
关键调整项:
- 在
LSP.sublime-settings中关闭实时诊断:"diagnostics_delay_ms": 0, "show_diagnostics_in_view_status": false, "show_diagnostics_panel_on_save": false
- 禁用自动格式化(Sublime 自带
JsPrettier或Black更可控):"format_on_save": false, "format_on_save_timeout_ms": 0
- 限制服务器内存占用:对
pylsp加--log-file /tmp/pylsp.log参数便于排查,对 TS 服务加--tsserver-log-file /tmp/tsserver.log - 不要同时启用多个同语言服务器(例如既配了
pylsp又配了pyright),LSP 插件不会自动去重,会导致冲突和崩溃
复杂点在于:每个语言服务器的参数风格、日志开关、初始化选项都不统一,调试时得盯着控制台里 LSP: stderr 输出逐行比对。很多人跳过这步,就一直以为是 Sublime 不支持智能提示。










