autofilename在sublime text 4需手动安装适配分支(如zhenkyle或boundincode版),原package control中st3旧版因python 2/3兼容问题静默失效;安装须严格满足路径、文件夹名(autofilename)、主文件位置(auto_file_name.py)三要素,且补全仅在引号内、有路径语义前缀、语法正确、文件已保存时触发。

AutoFileName在Sublime Text 4上根本不会自动工作
装完没反应、Ctrl+Space不弹路径、状态栏不显示AutoFileName: enabled——不是你配错了,是原版插件压根没加载。Package Control里搜到的AutoFileName仍是ST3旧版,Python 2代码(含urllib2)在ST4(Python 3.8+)中静默失败,控制台甚至不报错。
必须卸载旧版:Ctrl+Shift+P → Package Control: Remove Package → 选中并删掉AutoFileName;再手动安装适配分支:
-
zhenkyle/AutoFileName:功能全,支持auto_complete_project_path、path_aliases别名映射、自定义extensions -
BoundInCode/AutoFileName_ST4:轻量,只修复兼容性,适合只想快速启用基础补全的用户
二者都不上架Package Control,搜不到是正常的。
手动安装三要素:路径、文件夹名、主文件位置
插件对结构极其敏感,错一个字符就静默失效:
- 打开
Preferences → Browse Packages…,记下弹出路径(如~/Library/Application Support/Sublime Text/Packages) - 在该目录下新建文件夹,严格命名为
AutoFileName(注意大小写,不能是autofilename、AutoFileName_ST4或带版本号) - 去GitHub Releases下载最新
auto_file_name.py(zhenkyle版解压后取文件;BoundInCode版直接下载单个.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"|❌(引号已闭合),src=`|`❌(模板字符串不支持) - 前面必须有路径语义前缀:
src="、href="、url(、import "、require('✅;console.log("、class="❌ - 当前文件语法必须被识别为支持类型:右下角显示
CSS、HTML、JavaScript等,不能是Plain Text;Vue文件中<style></style>块需验证scope含source.css(用Tools → Developer → Show Scope Name) - 文件必须已保存(未保存的临时文件不触发)
想从项目根开始补全?别指望默认行为
默认基准路径是当前文件所在目录,不是你通过Project → Add Folder to Project加入的根目录。比如src/pages/Home.js里写import,它只扫描src/pages/子目录,不会列出src/assets/里的文件。
两种办法绕过限制:
- 在项目根目录放一个空的
.project文件(仅部分fork支持) - 在
Preferences → Package Settings → AutoFileName → Settings – User中添加:"auto_complete_project_path": true(仅zhenkyle分支支持)
别名映射也得手动配:sublime-project文件里加auto_filename_path_aliases,例如"@": "src",否则@/components/不会展开成真实路径。
最常被忽略的是:补全行为完全依赖当前文件语法识别和引号内光标位置,这两个条件不满足,其他配置再全也没用。











