all autocomplete默认关闭跨文件索引,需在用户设置中配置{"all_autocomplete": true}并确保文件语法正确识别(非plain text),仅对已打开的可读文件做字符串匹配补全,触发方式为ctrl/cmd+space。

装完插件为什么Ctrl+Space还是只补当前文件
因为All Autocomplete默认关闭跨文件索引,不是“装完就全局生效”。它只扫描当前文件,除非你显式告诉它去翻别的标签页。
必须在Preferences → Package Settings → All Autocomplete → Settings – User中写入正确配置。注意键名是"all_autocomplete": true,不是enable_global_autocomplete、enabled或all_autocomplete_enabled——写错一个字母都不会生效。
- 最小必要配置(JSON格式,无注释,末尾不能有多余逗号):
{"all_autocomplete": true} - 保存后无需重启,但需确保当前文件右下角显示的是
Python、JavaScript等有效语法,而非Plain Text;否则插件静默跳过 - 触发方式是手动的:
Ctrl+Space(Win/Linux)或Cmd+Space(macOS),不是边打字边弹,也不响应.或:
手动解压ZIP到Packages目录为啥完全没反应
Sublime Text 4 不会加载手动解压的 All Autocomplete,这不是 bug,是设计如此。它依赖 Package Control 的 Python 运行时和插件生命周期管理,纯静态文件无法执行其核心逻辑。
必须走标准流程:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS)→ 输入Package Control: Install Package→ 回车 - 等待列表加载完成 → 搜索
All Autocomplete(注意带空格)→ 回车安装 - 若之前手动放错过文件,建议重启 Sublime,避免缓存残留干扰加载
- 验证是否装对:再按
Ctrl+Shift+P→ 输入List Packages,看输出中是否有All Autocomplete;没有就等于没装上
开了全局补全还是补不出变量名
All Autocomplete 不解析import、不读 AST、不跟踪作用域,它只做一件事:把所有已打开的、可读的纯文本文件里的连续字母数字串(比如def user_login提取为user_login)塞进补全池。
补不出来,基本卡在这三个现实限制上:
- 目标词必须真实出现在某个已打开且未关闭的标签页中(哪怕只是只读打开的
utils.py),磁盘上存在的未打开文件它完全看不见 - 当前文件语法识别错误(右下角显示
Plain Text)→ 插件静默失效 - 触发方式是手动的:
Ctrl+Space(Win/Linux)或Cmd+Space(macOS),不是输入os.后自动弹;它也不响应.或:符号
大项目下补全变慢或命中率低怎么办
它只扫描当前所有已打开的 view,打开 50+ 文件时输入会轻微卡顿,尤其在正则匹配阶段(插件会对每个 view 的全文做字符串扫描)。
实际优化点很具体:
- 关掉几十个不用的 tab,反而补全更快更准
- 右键侧边栏 →
Open Containing Folder,把常用库文件(比如constants.js、api.py)手动打开几个标签页,它才能“看见” - 可在用户设置里加
"max_files_to_scan": 20来限制扫描上限,避免拖慢响应 - 别拿它当语言服务器用:
os.listdir()接什么参数、返回什么类型,它给不了——真需要这些,得配 LSP + pylsp/pyright











