all autocomplete 必须通过 package control 安装,手动解压至 packages 目录无效;启用后需在用户设置中添加 "all_autocomplete": true 并手动开启跨文件补全,仅索引已打开或可读的纯文本文件,不解析语法、不跟踪 import,仅作前缀匹配补全。

All Autocomplete 必须走 Package Control 安装,手动放文件夹无效
它不是个“解压即用”的插件,而是依赖 Package Control 的 Python 运行时和加载机制。你从 GitHub 下 ZIP、解压到 Packages/ 目录下,Sublime 根本不会识别——连重启都不管用。
- 正确做法:按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Package Control: Install Package,搜All Autocomplete并安装 - 装完不会自动生效;它默认只启用“当前文件内补全”,跨文件索引是关闭的
- 验证是否装对:打开命令面板,搜
All Autocomplete,能看到Enable All Autocomplete和Disable All Autocomplete两项
跨文件补全要手动开启,且只对已打开/可读文件生效
All Autocomplete 不解析语法,不跟踪 import 或作用域,它只是把所有已打开标签页 + 项目中能读到的纯文本(.py/.js/.html 等)里的单词,按前缀匹配扔进补全列表。所以“跨文件”是有严格边界的。
- 必须在用户设置里加配置:
"all_autocomplete": true(注意不是all_autocomplete_enabled) - 补全触发仍是手动:
Ctrl+Space(Win/Linux)或Cmd+Space(macOS),不是打字就弹 - 大项目想提高命中率?右键侧边栏 →
Open Containing Folder,把常用库文件(比如utils.py、constants.js)手动打开几个标签页,它才能“看见” - 如果右下角显示的是
Plain Text,它连当前文件都不会扫——先按Ctrl+Shift+P→Set Syntax: Python切对语法
别拿它当语言服务器用,函数签名/参数提示它给不了
输入 os. 后按 Ctrl+Space,它可能列出 os_path、os_listdir 这类拼写变体,但不会告诉你 os.listdir() 接什么参数、返回什么类型。这不是 bug,是设计如此。
- 它不理解
import os,也不管from pathlib import Path,只认字符串 - 想补
print()?除非你某个打开的文件里写过print,否则它不会出现 - 和 LSP 插件(如
LSP-pyright)完全不冲突,但功能不重叠:All Autocomplete 是“词频库”,LSP 是“语义引擎”——建议共存,前者补变量名,后者补函数签名 - 如果你正为
requests.get()参数发愁,该装的是python-lsp-server[all],不是多开一个requests.py标签页
补全不准?先看 scope 和文件是否真被索引
常见现象:写了 def my_func():,但在另一个文件里输 my_ 按 Ctrl+Space 却没出来。大概率不是插件坏了,而是 Sublime 压根没把它当“可索引内容”处理。
- 检查文件编码:含 BOM 或非 UTF-8 编码的文件,All Autocomplete 会跳过
- 确认文件路径没被
folder_exclude_patterns或file_exclude_patterns屏蔽(比如排除了*.min.js) -
.vue或.svelte里的 script 块,需确保语法高亮是source.python或source.js,不是embedding.python—— 光标放上去,按Ctrl+Shift+P→Developer: Show Scope Name看真实 scope - 它不扫描二进制文件、压缩包、node_modules 下的文件(即使你打开了),这是性能保护,不是缺陷











