All Autocomplete 默认不跨文件补全,需手动配置{"all_autocomplete": true}且确保文件语法正确(非Plain Text)、已打开、大小适中,仅对已打开文件做字符串匹配,不解析AST或作用域。

装完 All Autocomplete 默认不跨文件补全,必须手动配置 "all_autocomplete": true 并确保当前文件语法识别正确(右下角不是 Plain Text),否则它连当前文件都不扫。
为什么 Ctrl+Space 只补当前文件?
插件默认关闭跨文件索引,不是“装完就全局生效”。它只扫描当前标签页,除非你显式告诉它去翻别的打开的文件。
关键配置项是 "all_autocomplete": true —— 注意不是 enable_global_autocomplete、enabled 或 all_autocomplete_enabled,写错一个字母都不会生效。
- 打开
Preferences → Package Settings → All Autocomplete → Settings – User - 填入最小必要配置(JSON 格式,无注释,末尾不能有多余逗号):
{"all_autocomplete": true} - 保存后无需重启,但当前文件右下角必须显示
Python、JavaScript等有效语法,不能是Plain Text
补全没反应?先确认三个硬性条件
All Autocomplete 的补全逻辑非常朴素:只从「已打开的、语法识别正确的、大小适中的纯文本文件」中提取连续字母数字串。缺一不可。
- 至少两个文件同时打开,且都设对了语法(例如
A.py里写了def user_login,B.py里输入user_l再按Ctrl+Space才可能命中) - 光标必须在单词中间或末尾(
user_l|可以,|user_login开头位置不触发) - 文件不能太大(默认 >1MB 被跳过),也不能是
node_modules/、二进制或 Sublime 无法读取的路径(除非你手动打开了它)
为什么开了配置还是补不出变量名?
它不解析 import、不读 AST、不跟踪作用域,只做字符串匹配。补不出来,基本卡在这三点:
- 目标词没真实出现在**任何一个已打开且未关闭的标签页**中(哪怕只是只读打开的
utils.py,磁盘上存在的未打开文件它完全看不见) - 当前文件右下角显示
Plain Text→ 插件静默失效(按Ctrl+Shift+P→Set Syntax: Python切对) - 触发方式是手动的:
Ctrl+Space(Win/Linux)或Cmd+Space(macOS),不是输入os.后自动弹;它也不响应.或:符号
大项目下怎么提高命中率?
它没有后台扫描或项目级索引,“跨文件”仅限于你实际打开的标签页。指望调参数没用,得靠人工让关键符号“被看见”:
- 右键侧边栏 →
Open Containing Folder,把核心模块(如constants.js、api_client.py)手动打开几个标签页 - 避免打开几十个无关文件——打开 50+ 文件时,正则全文扫描会明显拖慢输入响应
- 如果想补
response.json()这类链式调用,别试了;它只认response和json这两个独立字符串,不认对象属性关系
最常被忽略的一点:All Autocomplete 和 LSP 补全是两套完全独立机制,共存时候选列表会混杂,但它那部分永远停留在字符串层面。真需要函数签名、类型推导、跳转定义,得上 LSP + 语言服务器,而不是反复改它的配置。











