autofilename在sublime text 4中默认不工作,必须手动安装zhenkyle或boundincode适配分支,严格满足路径、文件夹名(autofilename)、主文件位置(auto_file_name.py)三要素,并确保光标在未闭合引号内、有路径语义前缀、语法正确识别、文件已保存。

AutoFileName在Sublime Text 4根本不会自动工作
装完没反应、Ctrl+Space不弹路径、状态栏不显示AutoFileName: enabled——不是你配错了,是原版插件压根没加载。Package Control里搜到的AutoFileName仍是ST3旧版,含urllib2等Python 2模块,在ST4(Python 3.8+)中静默失败,控制台甚至不报错。
必须手动安装适配分支且满足三要素
能用的只有社区维护的ST4兼容分支,目前最稳的是zhenkyle/AutoFileName(功能全、修复卡顿)或BoundInCode/AutoFileName_ST4(轻量、仅修复兼容性)。二者都不上架Package Control,搜不到是正常的。
手动安装必须同时满足:
- 打开
Preferences → Browse Packages…,记下路径(如~/Library/Application Support/Sublime Text/Packages) - 在该目录下新建文件夹,**严格命名为
AutoFileName**(不能是autofilename、AutoFileName_ST4或带版本号) - 去对应GitHub Releases下载最新
auto_file_name.py,放进Packages/AutoFileName/,确保最终路径是Packages/AutoFileName/auto_file_name.py - 重启Sublime,或在控制台执行
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) - 文件必须已保存(未保存的临时文件不触发)
补全慢、别名不生效、子目录漏掉?调配置项
默认递归扫描当前文件所在目录全部子目录,遇到node_modules或.git容易卡住或漏结果:
- 大项目建议关深度扫描:
"recursive": false(只扫当前层和一级子目录) - 启用HTML/CSS补全需在
Settings – User中显式添加:"extensions": ["html", "css", "scss", "js"] - Webpack别名(如
@/components/)必须手动映射:"auto_filename_alias_map": { "@": "src" },写在Preferences → Package Settings → AutoFileName → Settings – User里 - 想从项目根目录开始补全,加
"auto_complete_project_path": true(注意:基准路径默认是当前文件所在目录,不是Project根)
路径补全的可靠性高度依赖项目结构清晰、别名配置完整、以及每个上下文条件都满足。一旦“应该补全却没反应”,优先检查Package Control: List Packages里有没有AutoFileName,再逐条核对那四个硬条件——90%的问题卡在这几步里。











