sublime text 4 上原版 autofilename 插件因 python 3.8+ 不兼容及 api 变更而无法运行,必须手动安装社区适配分支(如 zhenkyle 或 boundincode 版),严格按路径、命名、文件位置三步配置,并在用户设置中启用 enabled、auto_popup、use_forward_slash 等关键选项。

Sublime Text 4 上原版 AutoFileName 插件根本跑不起来——它不是“没配好”,而是被 Python 3.8+ 和新 API 直接拒载,连错误都不报,状态栏也不显示 AutoFileName: enabled。能用的只有社区维护的适配分支,且必须手动安装,Package Control 里搜到的全是失效旧版。
为什么 Package Control 安装的 AutoFileName 没反应?
Package Control 默认推送的是 ST3 旧版,Python 2 代码在 ST4 中无法加载:ImportError: No module named 'urllib2' 或静默失败。你看到 Preferences → Package Settings → AutoFileName 菜单项存在,不代表插件在运行;按 Ctrl+Shift+P 输入 Package Control: List Packages,列表里没有 AutoFileName 就等于没装上。
- 必须先卸载旧版:
Package Control: Remove Package→ 选中AutoFileName - 别信“拖文件夹进 Packages 就完事”——路径错、文件名错、
auto_file_name.py没放对位置,都会导致静默失效 - GitHub 上目前两个主流可用分支:
zhenkyle/AutoFileName(修复深度扫描卡顿)和BoundInCode/AutoFileName_ST4(轻量,需手动重载)
手动安装 AutoFileName_ST4 或 zhenkyle 分支的关键步骤
核心就三件事:放对目录、取对名字、确保主文件路径正确。任何一步偏差都会让插件不加载。
- 打开
Preferences → Browse Packages…,记下弹出的路径(通常是~/Library/Application Support/Sublime Text/Packages或%APPDATA%\Sublime Text\Packages) - 在该目录下新建文件夹,**严格命名为
AutoFileName**(不是AutoFileName_ST4,也不是zhenkyle-AutoFileName) - 去对应 GitHub Releases 页面下载最新
auto_file_name.py(zhenkyle版直接下 release zip 解压取文件;BoundInCode版也只取auto_file_name.py,不要 clone 整个 repo) - 把
auto_file_name.py放进刚建的AutoFileName文件夹,最终路径必须是Packages/AutoFileName/auto_file_name.py - 重启 Sublime,或在控制台执行
sublime_plugin.reload_plugin("AutoFileName.auto_file_name")
装好了还是不补全?检查这三处上下文
AutoFileName 不是字符串补全工具,它只响应“明显要填路径”的语法位置,对作用域极其敏感。
- 光标必须在**未闭合的英文引号内**:
src="|✅,src=|❌,src="img/logo.png"(已写完)也不触发 - 当前文件语法必须识别为支持类型:右下角显示
CSS、HTML、JavaScript等,不是Plain Text;Vue 文件中<style></style>块需有source.cssscope(可用Tools → Developer → Show Scope Name验证) - 前面必须有路径语义前缀:
src=、href=、url(、import "、require(';但const path = './'或console.log('./')不会触发
补全慢、卡顿、子目录不显示?调 excluded_folders 和 use_forward_slash
默认递归扫描当前文件所在目录全部子目录,遇到 node_modules、.git 就容易卡住甚至超时返回空结果。另外 Windows 下反斜杠补全会破坏前端路径兼容性。
- 在
Preferences → Package Settings → AutoFileName → Settings – User中添加: "excluded_folders": ["node_modules", ".git", "dist", "build"]-
"use_forward_slash": true(强制补全时用/而非\) -
"enabled": true和"auto_popup": true必须显式开启(很多人装完忘了这步) - 如果项目极大,可加
"recursive": false关闭深层递归,只扫一级子目录
最常被忽略的是:补全基准路径永远是**当前编辑文件所在目录**,不是项目根目录;想从根开始补,得靠 auto_filename_alias_map 手动映射别名,而不是指望插件自动识别 Project → Add Folder to Project 的结构。











