autofilename 原版不兼容 sublime text 4,需安装 zhenkyle/autofilename 分支;手动下载解压后放入 packages 目录,配置 extensions 和 exclude_folders 才能正常工作。

AutoFileName 在 Sublime Text 4 上还能用吗
不能直接用。原版 AutoFileName 已停止维护,Sublime Text 4 的 API 变动(尤其是 on_query_completions 返回结构)导致它加载失败,控制台会报错:AttributeError: 'NoneType' object has no attribute 'groups' 或直接不触发补全。
真正能用的是社区维护的兼容分支,不是原作者仓库那个。
- 认准 GitHub 上
zhenkyle/AutoFileName这个 fork(已适配 ST4) - 别从 Package Control 搜索 “AutoFileName” 直接安装——它默认推的是旧版,装了也白装
- 如果已装旧版,先在命令面板里运行
Package Control: Remove Package卸载干净,再手动装新分支
怎么手动安装 zhenkyle/AutoFileName
Package Control 不收录这个 fork,必须手动下载 + 放进 Packages 目录。路径不对、解压不完整、文件夹名含空格都会让插件静默失效。
- 去
https://github.com/zhenkyle/AutoFileName/releases下最新.zip包(如v2.1.0.zip) - 解压后得到一个叫
AutoFileName的文件夹(不是zhenkyle-AutoFileName-xxx) - 打开 Sublime Text →
Preferences → Browse Packages…,把解压好的AutoFileName文件夹整个拖进去 - 重启 Sublime,打开任意
.html或.css文件,在src="或url(后敲Tab或Ctrl+Space测试是否弹出路径建议
路径补全为什么在 JS/TS 里不生效
AutoFileName 默认只对 html、css、scss、less 等静态资源引用场景启用,JS/TS 中的 import 或 require 路径不在其监听范围内——这不是 bug,是设计如此。
想支持 JS/TS,得额外配置:
- 打开
Preferences → Package Settings → AutoFileName → Settings - 在用户设置里加这段:
"extensions": ["js", "jsx", "ts", "tsx"]
- 注意:加了之后,它只会补全相对路径(如
./utils/),不会解析node_modules或别名(@/components),那些得靠ImportHelper或ES6 Import插件
补全慢、卡顿或只显示根目录
常见原因是项目太大,或者开启了递归扫描但没排除 node_modules、dist 这类目录,导致插件遍历耗时过长,最终超时返回空结果。
- 在
AutoFileName设置里加"exclude_folders": ["node_modules", "dist", ".git", "build"]
- 关闭深度扫描:
"deep_search": false
(默认为true,关掉后只扫当前目录和子一级) - 如果项目用了符号链接(symlink),确保
"follow_symlinks": false(设为true可能引发循环引用) - Windows 用户注意路径分隔符:插件内部用
/,但你输入.\也能识别,不过统一用/更稳











