autofilename在sublime text 4上默认不工作,必须手动安装zhenkyle分支并确保auto_file_name.py置于packages/autofilename/目录下;补全仅在引号内、有路径前缀(如src=、import)且文件已保存时触发,基准路径为当前文件所在目录。

AutoFileName 在 Sublime Text 4 上默认不工作,装完没反应、Ctrl+Space 不弹路径、状态栏不显示 AutoFileName: enabled——不是你配错了,是原版插件根本跑不起来。
为什么装了 AutoFileName 却没路径补全?
Package Control 里搜到的 AutoFileName 是 ST3 旧版,Python 2 代码在 ST4(基于 Python 3.8+)中直接静默失败,连错误都不报。它加载失败但插件管理器不提示,右下角也不显示启用状态。
- 打开
Preferences → Package Settings → AutoFileName,如果菜单压根没出现,说明插件根本没加载 - 按
Ctrl+Shift+P输入Package Control: List Packages,列表里没有AutoFileName就等于没装上 - 别信“拖进 Packages 文件夹就完事”——手动放错文件结构(比如没把
auto_file_name.py放到Packages/AutoFileName/auto_file_name.py)也会白忙
怎么装一个真正能用的 AutoFileName?
必须用社区维护的 ST4 适配分支,目前最稳的是 zhenkyle/AutoFileName(最新 release 明确标注支持 ST4,且修复了深度扫描卡顿)。
- 去 GitHub Releases 页面下载最新
auto_file_name.py文件(不要 clone 整个 repo) - 打开
Preferences → Browse Packages…,进入用户Packages目录 - 新建文件夹,命名为
AutoFileName(注意:不是AutoFileName_ST4或带版本号的名) - 把下载的
auto_file_name.py放进去,确保最终路径是Packages/AutoFileName/auto_file_name.py - 重启 Sublime,或在控制台执行
sublime_plugin.reload_plugin("AutoFileName.auto_file_name")
装好了还是不触发?检查这三处上下文
AutoFileName 不是字符串补全工具,它只在“明显要写路径”的语法位置才启动,且对当前作用域极其敏感。
- 光标必须在引号内:
src="|"、url(|)、import Header from '|'—— 注释、JS 模板字符串(`)、正则字面量里完全不响应 - 当前文件类型必须被识别为路径相关语法:右键 →
Developer → Show Scope Name,光标处 scope 应含string.quoted.double.html或source.js等;若显示text.plain,需手动右下角切换语法 - 路径前缀得匹配预设规则:默认监听
src=、href=、url(、import、require(;在.js中写const path = './'不会触发,但import './'就可以
路径补全基准目录总是错?别指望它自动认项目根
AutoFileName 的相对路径起点永远是当前编辑文件所在目录,不是你打开的 Project 根目录。你在 src/pages/Home.jsx 里敲 ../,它只扫 src/pages/..,不会列出 src/assets/ 下的文件,除非你先输 ../assets/。
- 想从项目根开始补全,得在项目根加一个空的
.project文件(部分 fork 支持识别) - 或者在
Preferences → Package Settings → AutoFileName → Settings中加:"auto_complete_project_path": true - 别名路径(如
@/components/)必须显式配置:"auto_filename_alias_map": { "@": "src" },否则插件只会当普通字符处理 - 大项目务必排除
node_modules、.git、dist,否则扫描卡顿甚至漏路径:"excluded_folders": ["node_modules", ".git", "dist"]
最容易被忽略的一点:AutoFileName 补全依赖当前文件已保存且路径真实存在。未保存的临时文件、或路径中某级目录不存在时,它可能直接放弃扫描——不是 bug,是设计如此。











