all autocomplete 必须通过 package control 安装,手动放入文件无效;启用跨文件补全需在 settings–user 中精确配置 {"all_autocomplete": true};补全仅基于已打开、语法正确、大小适中的文本文件中的可见标识符进行前缀匹配。

All Autocomplete 必须走 Package Control 安装,手动放文件无效
插件不会被识别,哪怕你解压到 Packages/ 或 Installed Packages/ 目录下——它依赖 Package Control 的 Python 运行时和插件加载机制,不是静态资源。装错等于没装。
正确做法:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Install Package Control确保已装 - 再调命令面板,输
Package Control: Install Package,等列表加载完 - 搜
All Autocomplete(注意带空格,不是AllAutocomplete或all_autocomplete),回车安装 - 安装后建议重启 Sublime,尤其之前试过手动安装的,避免旧缓存干扰
补全不跨文件?检查 "all_autocomplete": true 是否写对
装完默认只启用当前文件内补全,跨文件索引是关闭的。配置项名极其严格:必须是 "all_autocomplete": true,不能是 all_autocomplete_enabled、enabled、enable_global_autocomplete —— 错一个字母都不生效。
操作路径:
- 菜单 →
Preferences → Package Settings → All Autocomplete → Settings – User - 填入最小必要配置(JSON 格式,无注释,末尾不能有多余逗号):
{"all_autocomplete": true} - 保存后无需重启,但当前文件右下角必须显示
Python、JavaScript等有效语法,不能是Plain Text
Ctrl+Space 没反应?三个硬性条件缺一不可
All Autocomplete 的补全逻辑极朴素:只从「已打开的、语法识别正确的、大小适中的纯文本文件」中提取连续字母数字串。不是“装了就全局生效”,而是“看见才补”。
常见卡点:
- 目标词(如
user_login)没真实出现在任何一个已打开且未关闭的标签页中——磁盘上存在的未打开文件它完全看不见 - 当前文件右下角显示
Plain Text→ 插件静默失效;按Ctrl+Shift+P→Set Syntax: Python切对语法 - 光标不在单词中间或末尾(如
|user_login开头位置不触发,user_l|才可) - 文件太大(默认 >1MB 被跳过),或路径不可读(如
node_modules/、二进制文件)
为什么补不出变量名?它根本不解析 import 和作用域
它不读 AST、不跟踪 import、不理解模块引用关系,只做字符串前缀匹配。补不出来,基本就是词没“露面”。
提升命中率的实际办法:
- 右键侧边栏 →
Open Containing Folder,把核心模块(如constants.py、api_client.js)手动打开几个标签页 - 关掉不用的 tab,避免扫描过多文件拖慢响应
- 别指望它补
requests.get()参数——那是 LSP 的事;All Autocomplete 只负责补你项目里反复出现的自定义标识符,比如API_BASE_URL、get_user_by_id - 和 LSP 插件(如
LSP-pyright)共存没问题,但补全候选会混在一起;真要区分,得靠 LSP 的completion.resolve或手动过滤
它不理解 from utils import *,也不管 def 在哪个文件里定义——只认你眼睛能看到的、Sublime 正在加载的文本内容。这点容易被忽略,但恰恰是它最根本的行为边界。











