ctrl+space是唯一可靠的手动触发方式,必须按此键强制唤出全部候选;它绕过所有限制,但依赖正确语法识别、auto_complete启用及插件正常加载。

Ctrl+Space 是唯一可靠的手动触发方式
Sublime Text 默认不自动弹出补全框,输完 os. 或 document. 后光标静止是正常现象。必须手动按 Ctrl+Space(Windows/Linux)或 Cmd+Space(macOS)才能强制唤出当前上下文全部候选——这不是 bug,是设计逻辑:它绕过所有 auto_complete_triggers 限制,直接拉取单词、snippet 和 LSP 提供项。
常见错误包括:
- 误以为“输入字符就该弹窗”,结果反复调
auto_complete_delay却无改善 - 右下角显示
Plain Text时按Ctrl+Space只返回零星单词(因为 All Autocomplete / LSP 都跳过该作用域) - 装了 Emmet 或 AutoFileName 后发现
Ctrl+Space不再响应——其实它们不劫持这个快捷键,问题大概率出在插件冲突或设置覆盖
Tab 键只负责“确认”,不负责“唤出”
Tab 的作用非常明确:它只在补全框已弹出的前提下,选中当前高亮项并插入。如果没看到弹窗,按 Tab 就只会缩进。
确保以下三点同时成立,Tab 才能如预期工作:
-
"auto_complete_commit_on_tab": true已写入用户设置 -
"auto_complete": true已启用(否则整个补全链路断掉) - 补全框确实已通过
Ctrl+Space或其他触发方式打开
若仍无效,用 Ctrl+Shift+P → 输入 Set Syntax: Python 确认当前文件语法识别正确;Plain Text 下 Tab 补全必然失效。
想让输点号(.)就弹窗?必须配 auto_complete_triggers
原生 Sublime 不解析语法,. 本身不是默认触发字符。要实现 obj. 后自动唤出方法列表,需显式声明:
{
"auto_complete_triggers": [
{"selector": "source.python", "characters": "."},
{"selector": "source.js", "characters": "."},
{"selector": "source.css", "characters": ":"}
]
}
关键细节:
- 作用域必须精确匹配右下角显示的语法名(
source.python≠python) -
"source.css -comment"中的空格不能省略,写成"source.css-comment"会导致整条规则静默失效 - 这条配置只影响“自动触发时机”,不影响补全内容来源——若没装 LSP 插件,
os.依然只返回你当前文件里出现过的单词
为什么改了设置还是没反应?先查这三处
补全快捷键失灵,90% 情况卡在这三个现实环节:
-
语法识别失败:右下角不是
Python、JavaScript等有效 scope,而是Plain Text—— All Autocomplete、LSP、auto_complete_triggers全部跳过 -
插件未真正加载:用
Ctrl+Shift+P→Package Control: List Packages查看列表中是否有对应插件名(注意拼写和空格),手动解压 ZIP 到Packages/目录在 ST4 中无效 -
设置被覆盖:用户设置(右侧)里写了
"auto_complete": true,但左侧默认设置里有同名 key 且值为false,最终以右侧为准;若右侧为空白,就完全依赖默认值
最简验证法:新建一个 .py 文件 → Ctrl+Shift+P → Set Syntax: Python → 输入 prin → 按 Ctrl+Space。若此时仍无 print,说明基础补全引擎已中断,优先检查 auto_complete 开关和语法识别。











