关闭 Sublime Text 自动补全需在用户设置中添加 "auto_complete": false,保存即生效;若仍弹出,需排查插件(如 Emmet)、语法专属设置或检查 auto_complete_selector 等精细控制项。

怎么关掉 Sublime Text 的自动补全(autocomplete)
Sublime Text 默认开启实时补全,敲几个字母就弹出候选框,干扰编码节奏。它不是“插件级”功能,而是编辑器原生行为,直接改设置就能禁用,不需要卸载插件或改配置文件路径。
关键点:关闭的是 auto_complete,不是 show_completions 或 auto_complete_commit_on_tab —— 后两者只控制补全触发方式或提交逻辑,不关掉它,补全框照常弹。
- 打开
Preferences → Settings(左右双栏界面) - 在右侧用户设置里添加这行:
"auto_complete": false - 保存后立即生效,无需重启
为什么关了还弹?检查是否被插件覆盖
有些插件(比如 Emmet、SublimeCodeIntel、AutoFileName)会绕过 auto_complete 设置,自己监听按键并主动调用 view.run_command("auto_complete")。这时候光关主开关没用。
排查方法很简单:用 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS)打开命令面板,输 Package Control: Disable Package,逐个禁用疑似插件再测试。
- 常见“顽固”插件:
Emmet(HTML/CSS 补全)、SublimeLinter(部分语言提示)、Vue Syntax Highlight(.vue 文件内补全) - 禁用后仍弹?看状态栏右下角有没有小图标(如 “JS”、“HTML”),切换语法模式试试,某些语法绑定自带补全逻辑
只关特定语言的补全(比如只关 JS,留 Python)
全局关太粗暴,实际开发中往往只需要抑制某类文件的干扰。Sublime 支持按语法作用域精细控制,靠 auto_complete_selector 和 auto_complete_triggers 实现。
例如,在 JavaScript 语法的用户设置里(Preferences → Settings – Syntax Specific),加:
"auto_complete_selector": "invalid",
这个 trick 利用了 Sublime 的选择器匹配机制——invalid 是个永远不匹配的 scope,等于彻底切断补全入口。
- Python 想保留?不用动,它的默认 selector 是
source.python - string - comment,不受影响 - 注意:这个设置只对当前语法生效,不会波及其他文件类型
- 别误写成
auto_complete: false在语法专属设置里——它会被忽略,Sublime 不认这个上下文
关补全后 Tab 键还能不能缩进
能。禁用 auto_complete 不影响 tab_size、translate_tabs_to_spaces 等缩进相关设置。Tab 键依然正常缩进,只是不再触发补全弹窗。
但要注意一个隐藏冲突:auto_complete_commit_on_tab 如果设为 true(默认值),且补全框意外弹出,按 Tab 就会强行选中第一项。所以建议顺手加上:
"auto_complete_commit_on_tab": false,
这样即使补全框闪现(比如插件抢跑),Tab 也只做缩进,不会插入意外内容。
真正容易被忽略的是:某些主题或 UI 插件会把补全框样式设得极淡,你以为关了,其实它还在后台跑、占 CPU、偶尔卡顿——确认是否彻底安静,开任务管理器看看 Sublime 进程的 CPU 占用,比看界面更准。










