Sublime Text自动补全失效主因是用户设置中"auto_complete": false或LSP未配置;需检查并修改用户设置,安装对应语言服务器,确保语法正确,排查插件冲突及键绑定逻辑。

Sublime Text 的 auto_complete 设置被意外关闭
自动补全不弹出,最常见原因是用户手动关掉了它,或插件冲突导致状态重置。Sublime 默认开启补全,但一旦触发过 Ctrl+Shift+P → Toggle Auto Complete,就会永久关闭(会写入用户设置)。
检查方法:打开 Preferences → Settings – User,确认里面没有这一行:
"auto_complete": false
如果有,删掉或改成 true;如果整个文件是空的或只有其他配置,直接加一行:
"auto_complete": true
注意:改完保存后无需重启,但当前已打开的文件可能需要重新聚焦输入框才会生效。
Python / JS 等语言没触发补全,因为没加载对应语法支持
Sublime 本身不带语言智能补全,只靠语法高亮和基础词典。比如敲 os. 不出列表,不是 Bug,是默认没启用 Python API 补全。
-
Sublime Text 4内置了 LSP 支持,但默认不启用任何语言服务器 —— 必须手动安装LSP插件 + 对应语言服务器(如LSP-pyright或LSP-eslint) - 旧版(ST3)更依赖第三方插件,如
Anaconda(Python)、SublimeCodeIntel(多语言),但这些已停止维护,容易和新插件冲突 - 即使装了 LSP,也要确保当前文件右下角显示正确语法(如
Python),而不是Plain text—— 否则服务器根本不启动
补全弹窗出现但内容为空或延迟严重
这通常是 LSP 服务器未就绪或配置不当。比如 pyright 启动时要扫描项目、解析类型,首次打开大项目可能卡住几秒,期间补全面板空白或只显示关键词。
排查步骤:
- 按
Ctrl+Shift+P输入LSP: Show Log,看有没有报错(如command not found、module not found) - 检查
LSP-pyright是否要求本地安装pyright(某些版本需npm install -g pyright) - 在项目根目录放
pyrightconfig.json可加速初始化,避免扫描无关路径 - 禁用其他补全类插件(如
AutoFileName、SublimeJEDI),它们会劫持tab键或覆盖 LSP 补全源
Tab 键不确认补全项,而是插入制表符
这是 Sublime 的默认行为:补全面板开着时,Tab 是「下一个候选」,Enter 才确认。很多人误以为 Tab 应该直接上屏,结果反复按没反应。
想改回 Tab 确认,可以加自定义键绑定(Preferences → Key Bindings):
[
{ "keys": ["tab"], "command": "replace_completion_with_auto_complete", "context":
[
{ "key": "auto_complete_visible" },
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
]
}
]
但要注意:这个修改会让 Tab 在所有场景(包括普通缩进)都优先走补全,可能破坏代码格式习惯。更稳妥的做法是适应 Enter 确认,或用 Ctrl+Space 手动唤出面板后再选。
真正难调试的是补全源混杂——LSP、snippet、词典、插件各提供一套候选,排序逻辑不透明,有时关键方法就是压在第 5 页。这时候与其调参数,不如先关掉非必要插件,让补全回归“可预期”。

















