autofilename在st4上默认不工作,必须卸载package control中的st3旧版,手动安装zhenkyle或boundincode适配分支,严格满足文件夹名、主文件路径、python 3兼容性三要素,并确保光标在未闭合引号内、有路径语义前缀、语法正确识别且文件已保存。

AutoFileName在ST4上根本不会自动工作
不是你配错了,是原版插件压根没加载。Package Control里搜到的AutoFileName仍是ST3旧版,用的是Python 2语法(比如urllib2),而Sublime Text 4默认运行Python 3.8+,这类代码会静默失败——控制台Ctrl+`里甚至不报错,状态栏也看不到AutoFileName: enabled提示。
必须手动安装适配分支,且三要素缺一不可
卸载旧版后,必须从GitHub手动安装兼容ST4的分支,且以下三点必须全部满足,错一个字符就失效:
- 插件文件夹名严格为
AutoFileName(大小写敏感,不能是autofilename或AutoFileName_ST4) - 主文件路径必须是
Packages/AutoFileName/auto_file_name.py(不是main.py、不是__init__.py) - 下载来源只能是适配分支:推荐
zhenkyle/AutoFileName(功能全,支持path_aliases和auto_complete_project_path)或BoundInCode/AutoFileName_ST4(轻量,只修复兼容性)
安装后重启Sublime,或在控制台执行:sublime_plugin.reload_plugin("AutoFileName.auto_file_name")
多级目录引用补全触发有四个硬条件
AutoFileName不是字符串补全工具,它只响应「明确路径语义 + 正确语法上下文」,常见失效原因如下:
- 光标不在未闭合的英文引号内:
src="|"✅,src=|❌,src="logo.png"|❌(引号已闭合),src=`|`❌(模板字符串不支持) - 前面缺少路径语义前缀:
import "、require('、url(、href="、src="✅;console.log("、class="❌ - 当前文件语法未被识别:右下角必须显示
HTML、CSS、JavaScript等,不能是Plain Text;Vue单文件中<style></style>块需确认scope含source.css(用Tools → Developer → Show Scope Name验证) - 文件未保存:临时未命名文件(
untitled)不触发补全
多级目录下路径补全行为与注意事项
补全本身支持任意深度的子目录(如./src/assets/images/icons/arrow.svg),但实际体验受两个因素影响:
-
zhenkyle版默认开启auto_complete_project_path,能跨项目根目录向上查找(比如从src/pages/home.js里补全../utils/api.js);BoundInCode版默认只补全当前文件所在目录及子目录 - 若项目有别名映射(如
@/components→src/components),必须在AutoFileName.sublime-settings中配置path_aliases,否则import "@/不会触发补全 - 补全结果按字母序排列,不按目录层级排序;想快速定位深层目录,建议先输入部分路径(如
img/ico)再按Ctrl+Space
最常被忽略的是:补全只发生在引号内且有语义前缀的瞬间——哪怕你写了src="./,光标停在/后面,也必须按下Ctrl+Space手动唤出,它不会自动弹出。











