autofilename 原版不兼容 sublime text 4,需改用社区分支 autofilename_st4;手动克隆至 packages 目录并命名为 autofilename;其路径补全仅在引号内触发,且受语法高亮、设置项及排除目录影响。

AutoFileName 在 Sublime Text 4 上还能用吗
不能直接用——原版 AutoFileName 插件已停止维护,Sublime Text 4 默认禁用不签名的插件,且其旧版 Python 2 代码在 ST4(基于 Python 3.8+)中会直接报错:ImportError: No module named 'urllib2'。它不是“装不上”,而是“跑不起来”。
替代方案是改用社区维护的分支:AutoFileName_ST4,已适配 Python 3 和 Sublime Text 4 的 API 变更。
怎么手动安装 AutoFileName_ST4
Package Control 里搜不到这个分支,必须手动克隆到 Packages 目录。关键不是“放对位置”,而是“别放错分支”:
- 打开 Sublime Text → Preferences → Browse Packages…,记下弹出文件夹路径(通常是
~/Library/Application Support/Sublime Text/Packages或%APPDATA%\Sublime Text\Packages) - 终端/命令行执行:
git clone https://github.com/BoundInCode/AutoFileName_ST4.git "AutoFileName"(注意末尾目录名必须叫AutoFileName,不是AutoFileName_ST4) - 重启 Sublime Text,检查 Preferences → Package Settings → AutoFileName 是否出现
常见错误:把仓库 clone 成 AutoFileName_ST4 文件夹——插件不会被加载;或没删掉同名旧插件(如之前装过原版),导致冲突。
路径补全为什么只在引号里生效
AutoFileName 的设计逻辑就是「上下文感知」:它只监听字符串字面量内部的输入,比如 require('./、import from "../、src="img/。这不是 bug,是故意的——避免在非路径场景(如变量名、注释)里弹出干扰建议。
如果你在 CSS 的 background: url( 后没触发,确认两点:
- 光标是否在双引号或单引号内(
url("img/|")✅,url(img/|)❌) - 是否启用了对应语法高亮(如 CSS 文件需是
CSS语法,不是Plain Text) - 检查设置:
"auto_filename_trigger_on_quotes": true(默认开启,但有人手动关过)
补全慢、卡顿或不显示子目录
性能问题通常来自路径扫描范围过大或符号链接循环。默认它会递归扫描当前文件所在目录的全部子目录,但遇到 node_modules、.git 这类大目录就会卡住。
实操建议:
- 在
AutoFileName.sublime-settings中添加排除项:"excluded_folders": ["node_modules", ".git", "dist"] - 禁用深度扫描:
"max_depth": 4(默认-1表示无限制) - 如果项目用的是相对路径(如
../utils/),确保你没在根目录外打开文件夹——插件只基于当前打开的文件夹做相对路径解析
一个容易被忽略的点:插件不会缓存文件系统变更。删了文件后,补全列表里可能还残留旧路径,得手动按 Ctrl+Shift+P → AutoFileName: Refresh Cache 才能更新。











