sublime如何启用“自动完成仅在触发时显示”?(减少干扰)

11次阅读

应将 “auto_complete”: false 加入用户设置以禁用自动弹窗,同时保留 Ctrl+Space 手动触发及 Tab 补全功能,并检查插件是否独立启用自动补全。

sublime如何启用“自动完成仅在触发时显示”?(减少干扰)

sublime Text 默认的自动完成会在你输入时持续弹出建议,容易遮挡代码或打断思路。要让它只在明确触发(比如按 Ctrl+Space)时才显示,关键不是关闭自动完成,而是关掉「实时触发」行为。

关闭 auto_complete 的自动触发

Sublime 的自动完成由两个机制控制:一个是后台监听输入并主动弹窗(auto_complete),另一个是手动调用(show_auto_complete)。干扰来自前者。

  • 打开 Preferences → Settings
  • 在右侧用户设置中添加或修改:
    {     "auto_complete": false,     "auto_complete_commit_on_tab": true }
  • "auto_complete": false 会禁用所有自动弹窗,但保留手动触发能力
  • "auto_complete_commit_on_tab" 确保你按 Tab 仍能补全当前选中的项

手动触发自动完成的正确方式

关掉自动弹窗后,补全不会消失,只是不“抢跑”。你需要显式唤出它:

  • 输入前缀(如 prin),然后按 Ctrl+Spacewindows/linux)或 Cmd+SpacemacOS)
  • 也可以用 Ctrl+Shift+Space 强制刷新候选列表(比如刚安装新插件后)
  • 若快捷键被系统占用(如 macos 的 Spotlight),可在 Preferences → Key Bindings 中查 show_auto_complete 并重绑

插件可能绕过这个设置

某些插件(如 SublimeCodeIntelAutoFileNamelsp 客户端)会自己监听输入并弹窗,它们不受 auto_complete 全局开关控制。

  • 检查已启用插件是否提供类似 "auto_complete": false 的独立配置项
  • 例如 LSP 插件需在 LSP.sublime-settings 中设 "auto_complete": false
  • 临时排查:禁用插件后测试,确认干扰源

真正起效的点在于区分「自动弹」和「手动唤」——很多用户反复开关 auto_complete 却没注意到插件层的覆盖逻辑,结果以为设置失效。

text=ZqhQzanResources