AutoFileName在Sublime Text 4中需手动安装适配分支(zhenkyle或BoundInCode版),严格命名文件夹为AutoFileName、正确放置auto_file_name.py,并满足引号内、路径语义前缀、语法识别及已保存文件四条件才生效。

Package Control安装的AutoFileName根本没加载
Sublime Text 4 上通过 Package Control 安装的 AutoFileName 插件,99% 情况下是静默失效的——它压根没进 Python 解释器,不是配置问题,而是原版代码用 urllib2(Python 2 模块)且未适配 ST4 的新 API。控制台不报错、状态栏不显示 AutoFileName: enabled、Ctrl+Space 没反应,全是“未加载”症状。
验证是否真装上了:Ctrl+Shift+P → 输入 Package Control: List Packages,如果列表里没有 AutoFileName,就等于没装。别信 Preferences → Package Settings 里有菜单项——那只是残留配置文件,插件本身从未运行。
必须先卸载旧版:Ctrl+Shift+P → Package Control: Remove Package → 选中并删除 AutoFileName。
手动安装路径/命名/主文件三要素全对才生效
可用分支只有两个:zhenkyle/AutoFileName(功能完整,支持别名映射和项目根路径)和 BoundInCode/AutoFileName_ST4(轻量,仅修复兼容性)。二者都必须手动安装,且结构不能错半分。
- 打开
Preferences → Browse Packages…,记下路径(如~/Library/Application Support/Sublime Text/Packages) - 在该目录下新建文件夹,**严格命名为
AutoFileName**(大小写敏感,不能是autofilename、AutoFileName_ST4或带版本号) - 去对应 GitHub Releases 页面下载最新
auto_file_name.py(zhenkyle版解压取文件;BoundInCode版只取单个.py文件) - 把
auto_file_name.py放进Packages/AutoFileName/,最终路径必须是Packages/AutoFileName/auto_file_name.py - 重启 Sublime,或在控制台(
Ctrl+`)执行sublime_plugin.reload_plugin("AutoFileName.auto_file_name")
补全不触发?四个硬条件缺一不可
AutoFileName 不是字符串补全工具,它只响应“明确要填路径”的上下文,且每个条件都必须满足:
- 光标必须在**未闭合的英文引号内**:
src="|"✅,src=|❌,src="logo.png"|❌(引号已闭合) - 当前文件语法必须被识别为路径相关类型:右下角显示
HTML、CSS、JavaScript或source.css等,不能是Plain Text;Vue 的<style>块需用Tools → Developer → Show Scope Name验证 scope 含source.css - 必须有预设的路径语义前缀:默认支持
src="、href="、url(、import '、require(";但console.log("assets/");或class="foo"不触发 - 文件必须已保存:未保存的临时文件(
Untitled)不参与路径扫描
Windows路径斜杠、大项目卡顿、作用域误判这些细节最易漏
补全出来却插入反斜杠 \?这是 Windows 默认行为,但前端代码必须用正斜杠 /。在 Preferences → Package Settings → AutoFileName → Settings – User 中加:"use_forward_slash": true。
项目文件超 10k?默认 "recursive": true 会导致首次输入卡顿明显,建议关掉。小项目可开,能补全深层嵌套路径。
文件双击打开却显示 Plain Text?说明 Sublime 没绑定扩展名和语法。点右下角语法名 → Set as Default for .xxx Files(不是 Open all with current extension as…),否则 AutoFileName 根本不监听该文件类型。
最关键的一点:路径基准永远是当前文件所在目录,不是你通过 Project → Add Folder to Project 加入的项目根目录。想从根开始补,得手动输 ../ 或确保当前文件就在根目录下——这点几乎所有人一开始都会忽略。


















