sublime代码提示默认不工作,必须安装lsp插件并配置对应语言服务器;原生仅支持文档内单词补全,按ctrl+space无反应通常因语法模式为plain text、auto_complete未启用或lsp未激活。

Sublime 的代码提示功能默认不工作,不是开个开关就能用——必须装 LSP 插件 + 对应语言服务器,否则你看到的只是文件内单词拼写补全,连 os.listdir 都不会出现。
为什么按 Ctrl+Space 没反应?先看这三件事
补全弹窗不出现,90% 是卡在这几个基础环节:
- 右下角语法标识是不是
Plain Text?必须是Python、JavaScript等具体语言,LSP 才会加载;查真实 scope 可用Ctrl+Shift+P→Developer: Show Scope Name -
"auto_complete": true没开——它控制弹窗是否出现,不是“智能程度”,而是“有无”;这个必须加在Preferences → Settings(用户侧)里 - LSP 插件装了但没启用语言服务器:执行
Ctrl+Shift+P→LSP: Enable Language Server Globally,选pylsp或typescript-language-server,状态栏左下角要显示LSP-pylsp active
Tab 键不确认补全项?改这两个设置
很多人敲完 os. 弹出菜单,按 Tab 却只插入制表符——这不是插件问题,是 Sublime 默认行为:
-
"auto_complete_commit_on_tab": true必须显式开启,否则Tab和补全无关 -
"auto_complete_with_fields": true建议一并打开,否则像print(${1:x})这类带占位符的补全无法用Tab跳转 - 别碰
"tab_completion": true,它和补全无关,只影响普通文本补全逻辑
哪些插件真有用?哪些该直接跳过
现在(2026 年)还在维护、能实际解决补全问题的只有这几类:
-
LSP(必装):客户端,负责通信;从 Package Control 安装,作者是sublimelsp;别装SublimeCodeIntel,已停止维护,对 Python 3.11+ 和 TS 5.x 兼容极差 -
python-lsp-server[all](Python 用户):终端运行pip install python-lsp-server[all],含 jedi、pyflakes、autopep8,比单装 jedi 更稳 -
typescript-language-server(JS/TS 用户):运行npm install -g typescript-language-server,注意全局安装后确保node_modules/.bin在 PATH 中 -
Emmet(前端必备):HTML/CSS 缩写补全,输入ul>li*3+Tab直出结构,和 LSP 不冲突
别浪费时间试这些:AutoComplPop(新版 Sublime 兼容差)、Jedi - Python Autocompletion(旧版,不支持类型推导)、.sublime-completions 文件(只能做静态文本替换,补不了 requests.get() 参数)。
LSP 配置里最容易漏掉的关键字段
装完 LSP 和服务器后,很多人卡在“状态栏没显示 active”——问题常出在 Preferences → Package Settings → LSP → Settings 的 clients 配置:
-
"command"必须是可执行命令名或绝对路径,Windows 上常见写成["C:\Python311\Scripts\pylsp.exe"],不能只写["pylsp"](PATH 未包含时失败) -
"scopes"必须匹配真实语法 scope,Python 是["source.python"],不是["python"]或["source.py"] -
"languageId"要和服务器一致,pylsp对应"python",typescript-language-server对应"typescript",大小写敏感 - 想看到函数参数和文档,还得在同个配置里加:
"show_symbol_descriptions": true和"show_documentation": true
复杂点不在装多少插件,而在 command 路径对不对、scope 写没写错、languageId 匹配不匹配——这三个地方错一个,LSP 就静默失效,不报错也不提示。











