sublime自动补全弹窗默认不自动触发,必须手动按ctrl+space(windows/linux)或cmd+space(macos)唤出;其核心在于补全引擎分触发与提交两层,该快捷键绕过所有限制,强制显示当前上下文全部候选。

Sublime 的自动补全弹窗默认不会“输点就出”,必须手动按 Ctrl+Space(Windows/Linux)或 Cmd+Space(macOS)触发——这是最稳定、最可控的方式,别指望它像 VS Code 那样无脑响应 . 或 :。
为什么 Ctrl+Space 是唯一可靠入口
Sublime 的补全引擎分两层:触发(trigger)和提交(commit)。Ctrl+Space 绕过所有 selector 和 characters 限制,强制唤出当前上下文可用的全部候选(单词、snippet、LSP 提供项等)。很多用户折腾 auto_complete_triggers 却始终不弹窗,根源就是误以为“输入字符=自动触发”,而忽略了 Sublime 默认只做“被动响应”。
-
auto_complete_triggers只对特定语法作用域生效,比如{"selector": "source.css", "characters": ":"},但若右下角显示的是Plain Text,这条规则直接失效 - LSP 补全依赖语言服务器加载,文件未被识别为对应类型(如 .py 文件显示为
Python而非Plain Text)时,Ctrl+Space也只会返回基础单词补全 - 插件如 Emmet、AutoFileName 会劫持
Tab或Enter,但它们不响应Ctrl+Space,所以这个快捷键始终干净、可预测
auto_complete_commit_on_tab 开了但 Tab 不工作?先看补全框有没有弹出来
很多人设了 "auto_complete_commit_on_tab": true,却仍发现按 Tab 只缩进。这不是设置没生效,而是补全框压根没出现——Tab 只负责“选中已高亮项”,不负责“唤出列表”。
- 确认
"auto_complete": true已启用(否则整个补全链路断掉) - 检查
"auto_complete_selector"是否写错作用域,比如 CSS 写成"source.css -comment"是对的,但写成"source.css-comment"(少空格)会导致解析失败,整条配置静默忽略 - JSON 格式错误(如末尾多逗号、单引号代替双引号)会让整个用户设置不加载,建议用在线 JSON 校验器粘贴验证
想让 . 后自动弹窗?Python/JS 等语言需显式配 auto_complete_triggers
原生 Sublime 不支持 os. 自动补全,必须靠 auto_complete_triggers 显式声明。这个配置对 HTML/CSS/Python 都有效,但每种语言的作用域 selector 不同,不能混用。
- Python:加
{"selector": "source.python", "characters": "."},确保右下角是Python - CSS:加
{"selector": "source.css", "characters": ":"},且需配合 CSS3 插件才能识别gap、backdrop-filter等现代值 - HTML:加
{"selector": "text.html", "characters": ",用于标签名补全;但闭合标签(如 <code><div> 后自动补 <code>











