sublime text 4 中 autofilename 插件需手动安装 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=`|`❌(模板字符串不支持) - 前面要有路径特征前缀:
src="、href="、url(、require('、import "✅;console.log("、class="❌ - 当前文件语法高亮必须匹配:右下角显示
CSS、HTML、JavaScript等,不能是Plain Text;Vue 的<style></style>块需被识别为source.css(可用Ctrl+Shift+P → Developer: Show Scope Name验证) - 文件必须已保存:未保存的临时文件(
untitled)无基准路径,补全逻辑直接跳过
性能卡顿或子目录不显示?关键在排除和深度设置
默认递归扫描当前文件所在目录全部子目录,遇到 node_modules、.git 就会卡住。
- 在
AutoFileName.sublime-settings中添加排除项:"excluded_folders": ["node_modules", ".git", "dist"] - 限制扫描深度:
"max_depth": 4(默认-1表示无限递归,小项目可保留,大项目务必设值) - Windows 下补全插入反斜杠?加
"use_forward_slash": true强制使用正斜杠 - JS/TS 中
import或require不生效?默认不监听,需在设置中显式添加"extensions": ["js", "jsx", "ts", "tsx"],但注意:它只补全相对路径,不解析node_modules或别名(如@/components)
最易被忽略的是:插件是否真被加载(而非菜单存在)、光标是否严格处于未闭合引号内、当前语法是否被正确识别——这三个点错一个,补全都不会出现,且没有任何提示。











