Sublime Text 原生补全仅支持当前文件单词前缀匹配,不解析语法、作用域或类型,需通过 LSP 插件桥接语言服务器实现智能补全;必须正确配置 command、languageId、scopes、syntaxes 及 auto_complete_commit_on_tab 等关键项,否则 LSP 静默失效。

Sublime Text 原生不支持函数签名、参数提示、跨文件跳转这类智能补全,只做当前文件内单词的前缀匹配;要获得接近 VS Code 的体验,必须用 LSP 插件桥接本地语言服务器——这是唯一可靠路径。
为什么原生补全几乎没用?
Sublime 默认的 auto_complete 机制不解析语法,也不读取作用域。它只缓存你打过的词:没写过 requests.get,就不会提示 get;写了 prnt,也不会修正为 print。它不理解 self、this、类型注解,也不识别 import 后的对象属性。
- 补全弹窗里只有拼写相近的变量名或历史词,没有文档、没有参数占位符
- 按
Tab不会插入建议项,除非设置了"auto_complete_commit_on_tab": true - 右下角语法显示不是
Python或JavaScript,LSP 和插件根本不会加载
必须装 LSP + 对应语言服务器
别再试 SublimeCodeIntel 或 Anaconda——前者已停止维护,对 Python 3.11+ 和 TS 5.x 兼容极差;后者在新版本 Sublime 上常卡死。当前唯一稳定方案是 LSP(客户端)搭配官方语言服务器。
- 用
Package Control: Install Package安装LSP(作者 sublimelsp) - 终端执行对应命令安装服务器:
pip install python-lsp-server[all](Python)、npm install -g typescript-language-server(TS/JS) - 检查
pylsp是否在PATH中:Windows 用户可能需把Scripts目录加进环境变量
LSP.sublime-settings 配置关键点
菜单 → Preferences → Package Settings → LSP → Settings,在右侧用户设置中填入 clients 配置。错一个字段,LSP 就静默失效。
-
"command"必须是可执行命令名或绝对路径,例如 Windows 上可能是["C:\Python311\Scripts\pylsp.exe"] -
"languageId"和"scopes"必须匹配实际文件:Python 文件默认 scope 是"source.python",不是"text.python" -
"syntaxes"要指向 Sublime 自带语法定义路径:"Packages/Python/Python.sublime-syntax",拼错就无法激活 - 保存后打开一个
.py文件,状态栏左下角出现LSP-pylsp active才算连通成功
补全行为要手动调优
即使 LSP 连上了,补全也可能不自动弹出——因为 Sublime 默认不监听 . 或 ( 这类语义字符。
- 在 Preferences → Settings(用户) 中确保含:
"auto_complete": true、"auto_complete_commit_on_tab": true - 加触发器让点号立刻唤出补全:
"auto_complete_triggers": [{"selector": "source.python", "characters": "."}] -
"auto_complete_delay"建议设为10–30,50ms 在高负载机器上会明显卡顿 - 光标停在函数括号内时,按
Ctrl+Shift+P输入LSP: Show Hover才能看到参数提示,这不是悬停自动触发的
最容易被忽略的是 scope 和 syntaxes 的严格匹配,以及 auto_complete_commit_on_tab 这个开关——没开它,Tab 永远只是缩进,不是确认补全。LSP 不报错,也不提醒配置错误,它只会安静地不工作。











