AllAutocomplete必须通过Package Control安装并手动配置"all_autocomplete": true才启用跨文件补全,仅索引已打开且语法正确的纯文本文件,触发方式为Ctrl/Cmd+Space,不解析语法或import。

AllAutocomplete 在 Sublime Text 4 中不是“装完就全局生效”的插件——它默认只补全当前文件,跨文件补全必须手动配置且受严格限制。
怎么确认 AllAutocomplete 真正装对了
手动解压 ZIP 到 Packages/ 目录下完全无效,Sublime Text 4 不会加载。必须走 Package Control 流程:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Install Package Control并回车(如未安装) - 再次调出命令面板,输入
Package Control: Install Package,等待列表加载完成 - 搜索
All Autocomplete(注意带空格),回车安装 - 安装后建议重启 Sublime Text 4,尤其之前试过手动安装的,避免缓存残留干扰
- 验证是否加载成功:再按
Ctrl+Shift+P,输入List Packages,看输出里是否有All Autocomplete
如果没出现,说明根本没装上;如果出现了但补全没反应,问题在下一步配置。
为什么开了插件还是只补当前文件
AllAutocomplete 默认不扫描其他文件,必须显式启用跨文件索引。关键配置项是 "all_autocomplete": true(不是 enable_global_autocomplete,也不是 enabled):
- 打开
Preferences → Package Settings → All Autocomplete → Settings – User - 填入最小必要配置(JSON 格式,不能有注释,末尾不能有多余逗号):
{ "all_autocomplete": true } - 保存后无需重启,但需确保当前文件右下角显示的是
Python、JavaScript等有效语法,而非Plain Text—— 否则插件直接跳过不运行 - 补全触发是手动的:
Ctrl+Space(Win/Linux)或Cmd+Space(macOS),不是边打字边弹
如果你只打开了一个文件,或所有打开的文件里都没出现你要补的词(比如想补 apiHost,但没一个文件里写过它),那按 Ctrl+Space 就不会出来。
补全没反应?先检查这三个硬性条件
AllAutocomplete 的补全逻辑非常朴素:只从「已打开的、语法识别正确的、大小适中的纯文本文件」中提取连续字母数字串。缺一不可:
-
至少两个文件同时打开,且都设置了正确语法(右下角不是
Plain Text);例如 A.js 里写了const baseUrl = '',B.js 里输baseU再按Ctrl+Space才可能看到候选 -
光标必须在单词中间或末尾,比如
baseU|可以,|baseUrl开头位置不触发 -
文件不能太大(默认 >1MB 会被跳过),也不能是二进制、加密或 Sublime 无法读取的路径(比如
node_modules/里的文件,除非你手动打开了它)
常见假失败:你在新标签页输 prin 想补 print,但没任何一个已打开文件里出现过这个词——它真的不存在于你的“当前可见语料库”里。
和 LSP 或其他补全插件共存时要注意什么
AllAutocomplete 是纯文本级广播式补全,和 LSP、AutoFileName 等语义级插件混用时,容易互相干扰:
- 补全框里会出现重复项(比如同一个函数名,
LSP给一次,AllAutocomplete又给一次) -
Tab键行为可能被劫持:如果auto_complete_commit_on_tab没设为true,按Tab只会插入缩进,不会选中补全项 - 性能敏感:打开 50+ 文件时,
AllAutocomplete会在每次Ctrl+Space时遍历所有 view 做字符串扫描,明显卡顿;可加"max_files_to_scan": 20限制范围 - 别指望它补
os.后的方法——它不解析对象属性,只匹配前缀字符串;这种需求必须用LSP-pyright或LSP-typescript
真正“全局”的边界,就是你当前 Sublime 窗口里所有开着的 tab。它不读磁盘、不索引项目、不跟踪 import,也不管你关没保存——只看你此刻眼睛能看到的那些文件内容。











