关键不是堆插件,而是砍掉语言服务器冷启动和冗余扫描:pyright需用venv内绝对路径+空pyproject.toml禁宽松模式,tsserver须直连项目node_modules并禁用initializationOptions,同时确保syntax识别正确且禁用Anaconda等冲突插件。

Sublime Text 要跑出接近 VS Code 的 LSP 响应速度,关键不是堆插件,而是砍掉语言服务器冷启动和冗余扫描——pyright 启动慢、tsserver 卡顿、跳转延迟高,90% 都源于配置里多写了字段、少限了范围、或路径没对齐系统实际执行环境。
确认 Package Control 和 LSP 插件已真正加载
按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS)输入 Package Control: Install Package,能弹出列表才算就位;如果提示 “command not found”,说明 Package Control 没装成功,后续所有操作都会静默失败。装完 LSP 插件(作者必须是 sublimelsp)后务必重启 Sublime —— macOS 和某些 Linux 发行版不重启,LSP 的命令面板项根本不会注册。
Python:用 pyright + 项目级配置代替全局安装
别用 npm install -g pyright,直接在项目根运行:pip install pyright --user(Windows 加 --user 避免权限问题)。然后在 Preferences → Package Settings → LSP → Settings 用户配置中写:
{
"clients": {
"pyright": {
"command": ["/path/to/venv/bin/pyright", "--stdio"],
"scopes": ["source.python"],
"syntaxes": ["Packages/Python/Python.sublime-syntax"],
"enabled": true,
"settings": {
"python.defaultInterpreterPath": "./venv/bin/python"
}
}
}
}
注意三点:
• command 必须填 venv 内的绝对路径,不是全局 pyright 命令
• 项目根放一个空的 pyproject.toml,否则 pyright 进入“宽松模式”,跳转会扫完整 venv
• 禁用 Anaconda 插件,它会劫持 Ctrl+Click 并导致 CPU 飙升
TypeScript:绕过 tsserver 自动发现,直连项目 node_modules
tsserver 不读 tsconfig.json 就等于没配。不要依赖全局 typescript-language-server,改用项目本地二进制:
- 确保项目已装
typescript:运行npx tsc --noEmit验证 - 查路径:
ls node_modules/.bin/tsserver*(macOS/Linux)或dir node_modules\.bin\tsserver*(Windows) - 在
Preferences → Package Settings → LSP → Servers → LSP-typescript中填:
{
"command": ["./node_modules/.bin/tsserver", "--stdio"],
"enabled": true,
"settings": {
"typescript.preferences.includePackageJsonAutoImports": "auto"
}
}
Windows 用户注意:tsserver.cmd 后缀不能省,且路径要用正斜杠或双反斜杠;initializationOptions 字段已废弃,写了反而断连。
补全与跳转仍卡?先关掉这些默认行为
Sublime 默认不把 Tab 当作补全确认键,也不在输入时自动触发诊断——这两点会让 LSP 显得“反应迟钝”:
- 在用户设置(
Preferences → Settings)里加:"auto_complete_commit_on_tab": true - 禁用
AutoFileName或All Autocomplete:它们会拦截Tab,导致补全框弹出但按不动 - 删掉 LSP 设置里的
"diagnostic_delay_ms": 500类参数:LSP 默认已做防抖,手动加反而拖慢首次报错 - 打开
LSP: Toggle Log Panel,看到starting server后没connected,立刻检查command是否能手动执行、scopes是否匹配当前文件(按Ctrl+Alt+Shift+P查)
最常被忽略的是:LSP 功能只在 syntax 识别正确的前提下工作,而 syntax 又极易被第三方插件覆盖——哪怕你打开的是 .py 文件,状态栏显示 text.plain,那所有配置都白搭。


















