sublime text 代码自动补全失效主因是配置断链:右下角语法非具体语言、auto_complete未显式启用、lsp服务器未全局启用或配置缺失、tab未设为确认键、.sublime-completions仅支持静态替换。

Sublime Text 的代码自动补全不生效,90% 是因为没配对:LSP 插件装了但语言服务器没装、auto_complete 被关了、右下角语法显示 Plain Text、或 Tab 根本没设为确认键——不是插件坏了,是链路断在某个环节。
为什么 Ctrl+Space 按了没反应?先盯住这三处
补全弹窗都不出来,基本卡在这几个基础点上:
- 右下角语法标识必须是
Python、JavaScript、CSS等具体类型,不是Plain Text;按Ctrl+Shift+P→Developer: Show Scope Name可确认真实 scope 是source.python还是text.plain -
"auto_complete": true必须显式写在Preferences → Settings – User里;默认设置里的true不生效,你没写,它就当关着 - LSP 插件装了但没启用对应服务器:执行
Ctrl+Shift+P→LSP: Enable Language Server Globally,选pylsp或typescript-language-server,状态栏左下角要显示LSP-pylsp active
LSP 配置后 os. 不出提示?检查这几个关键点
即使 LSP 插件和服务器都装了,补全仍可能静默失效。常见断点不在 Sublime 设置里,而在语言服务器自身的运行条件:
- Python 用户:确保装的是
python-lsp-server[all](带[all]才含 jedi 后端),不是裸装的python-lsp-server - JavaScript/TypeScript:项目根目录必须有
jsconfig.json或tsconfig.json,否则typescript-language-server会退化为纯文本匹配 - 触发时机:LSP 默认不自动弹出补全框,
os.后需手动按Ctrl+Space;如需输入.后立刻弹窗,得在用户设置里加:"auto_complete_triggers": [{"selector":"source.python","characters":"."}] - 补全项为空?打开 Sublime 控制台(
Ctrl+`),看是否有LSP: pylsp failed to start类报错,这类错误常因 Python 解释器路径配置错误导致
Tab 键不确认补全项,只插入制表符
这是 Sublime 默认行为:补全面板开着时,Tab 是「下一个候选」,Enter 才确认。很多人误以为 Tab 应该直接上屏,结果反复按没反应。
- 想改回
Tab确认,必须在Preferences → Key Bindings (User)里加键绑定规则 - 同时需确保用户设置中启用了:
"auto_complete_commit_on_tab": true和"auto_complete_with_fields": true(后者支持print(${1:x})这类占位符跳转)
别浪费时间配 .sublime-completions 补函数
.sublime-completions 文件只能做静态文本替换,比如输入 log 插入 console.log($1);$0。它完全不感知作用域、不查 self、不读 import、不支持类型推导——和“智能提示”毫无关系。
- 文件必须放在
Packages/User/目录下,且后缀严格为.sublime-completions - 即便配好了,
requests.get也不会出现在补全列表里,除非你之前手动打过这个词
真正卡住人的地方,往往不是“怎么装”,而是“装完之后谁在干活”——LSP 插件只是管道,pylsp 或 pyright 才是补全引擎;而它们是否启动,又取决于语法识别、配置字段拼写、PATH 是否包含命令、项目配置是否存在……漏掉任意一环,补全就静默消失。











