Sublime Text 4 上直接从 Package Control 安装 AutoFileName 必然失效,因其原版停更且含 Python 2 的 urllib2 模块,无法兼容 Python 3.8+ 和新 API,导致静默不加载;必须卸载旧版后手动安装 zhenkyle 或 BoundInCode 的适配分支,并严格按路径、文件夹名(AutoFileName)、auto_file_name.py 位置三步配置,再检查光标在未闭合引号内、语法识别正确、触发前缀匹配、文件已保存四个硬条件。

Sublime Text 4 上直接从 Package Control 安装 AutoFileName 必然失效——它根本没加载,不是配置问题,是 Python 3.8+ 和新 API 兼容性断层导致的静默失败。
为什么 Package Control 里搜到的 AutoFileName 不工作
你看到 Preferences → Package Settings → AutoFileName 菜单项存在,不代表插件在运行。按 Ctrl+Shift+P 输入 Package Control: List Packages,如果列表里没有 AutoFileName,就等于没装上。
- 原版已停更,代码含
urllib2(Python 2 模块),ST4 启动时直接ImportError或静默跳过 - 控制台不报错、状态栏不显示
AutoFileName: enabled、Ctrl+Space没反应——全是“没加载”的典型症状 - 目前真正可用的分支只有两个:
zhenkyle/AutoFileName(功能全,支持别名映射)和BoundInCode/AutoFileName_ST4(轻量,只修复兼容性)
手动安装必须满足三要素:路径、文件夹名、主文件位置
插件不会自动识别你拖进 Packages 的任意文件夹。它对结构极其敏感,错一个字符就静默失效。
- 打开
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="img/logo.png"(已写完)也不触发 - 当前文件语法必须识别为支持路径的类型:右下角显示
CSS,不是Plain Text;Vue 文件里<style>块需有source.cssscope(可用Tools → Developer → Show Scope Name验证) - 触发前缀必须匹配:仅在
src="、href="、url(、@import "、require('、import from "等后紧接引号中生效 - 文件必须已保存:未保存的临时文件(
untitled)无法确定基准路径,补全直接跳过
补全行为受项目结构和配置强约束
路径补全的可靠性高度依赖项目结构清晰和别名配置完整。一旦出现“应该补全却没反应”,优先检查 sublime-project 设置和扫描范围。
- 基准路径 = 当前文件所在目录,不是项目根目录;想从项目根开始补全,需在用户设置中加
"auto_complete_project_path": true - Webpack/Vite 别名(如
@/components/)必须手动映射:sublime-project中加入"auto_filename_path_aliases": { "@": "src" } - 大项目默认递归扫描容易卡顿或漏深层子目录,建议关掉深度扫描:
"recursive": false -
excluded_folders必须显式排除node_modules、.git等干扰项,否则首次补全可能卡住数秒


















