AutoFileName在Sublime Text 4默认不工作,因Package Control安装的是ST3旧版,与Python 3 API不兼容,需卸载后手动安装适配分支(如zhenkyle/AutoFileName);补全仅在引号内且有路径语义前缀(如src=、url()时触发,基准路径为当前文件目录,非项目根目录。

Sublime Text 4 上 AutoFileName 路径补全默认不工作,装了也不弹建议——不是你配错了,是原版插件根本没加载。
为什么装了 AutoFileName 却没反应?
Package Control 搜索安装的 AutoFileName 是 ST3 旧版,与 ST4 的 Python 3 API 不兼容。它静默失败,不报错、不提示、状态栏也不显示 AutoFileName: enabled,但 Preferences → Package Settings 里能看到条目,容易误以为“已生效”。
- 必须卸载旧版:按
Ctrl+Shift+P→ 输入Package Control: Remove Package→ 选中并删掉AutoFileName - 改用适配分支:
zhenkyle/AutoFileName(推荐,支持auto_complete_project_path)或BoundInCode/AutoFileName_ST4(轻量,需手动重载) - 下载 release 中的
auto_file_name.py,放入Packages/AutoFileName/目录,确保路径是Packages/AutoFileName/auto_file_name.py - 重启 Sublime,再执行
Package Control: List Packages确认列表里有AutoFileName
路径补全只在特定上下文触发
AutoFileName 不是字符串补全工具,它只识别“明显要填路径”的位置,且光标必须严格处于未闭合的引号内(" 或 '),否则不响应。
- 有效触发点:
src="、href="、url(、import "、require('—— 注意括号和引号要连着写,url(就够,不用url(" - 无效场景:
console.log("assets/");、class="foo"、注释里、JS 模板字符串(`)、正则字面量 - 语法必须正确:右下角状态栏显示
CSS,不是Plain Text;Vue 文件中<style>块需被识别为source.css(用Tools → Developer → Show Scope Name验证)
补全基准路径不是项目根目录
默认以当前文件所在目录为起点,不是你通过 Project → Add Folder to Project 加入的根目录。比如 src/pages/Home.js 里写 import,补全范围是 src/pages/ 下的子目录,不会列出 src/assets/ 里的文件,除非你先输 ../assets/。
- 想从项目根开始补全:在项目根目录放一个空的
.project文件(部分 fork 支持),或在Preferences → Package Settings → AutoFileName → Settings中加:"auto_complete_project_path": true - 别名路径(如
@/components/)需手动映射:"auto_filename_alias_map": { "@": "src" } - 排除大目录防卡顿:
"excluded_folders": ["node_modules", ".git", "dist"]
快捷键失效或补全延迟的常见原因
Ctrl+Space 是 Sublime 原生补全快捷键,但常被其他插件(如 LSP、Emmet)覆盖;而 AutoFileName 默认依赖这个快捷键唤出路径建议,一旦被劫持就完全失灵。
- 检查是否被覆盖:按
Ctrl+Shift+P→ 输入Preferences: Key Bindings,搜索ctrl+space,看绑定的是哪个命令 - 补全卡顿:关闭深度扫描,或限制递归层级(部分 fork 支持
"max_depth": 4) - 未保存文件不参与补全:AutoFileName 只扫描磁盘上真实存在的文件,临时未保存的 tab 不计入路径索引
最常被忽略的一点:插件加载成功 ≠ 补全可用。即使 Package Settings 里有入口,也得确认作用域对、引号在、路径存在、排除项没误杀——少一个条件,光标停在 src="| 里也不会弹出任何东西。

















