Sublime Text 原生不支持批量重命名,必须依赖SideBarEnhancements插件;安装后多选文件右键Rename,输入含{{name}}、{{ext}}、{{index}}等变量的模板即可批量重命名,需提前开启enable_undo_for_rename_operations方可撤销。

Sublime Text 原生不支持批量重命名,所有“右键批量改名”功能必须依赖 SideBarEnhancements 插件——没装它,菜单里根本不会出现 Rename 选项。
怎么用 SideBarEnhancements 批量重命名文件
安装插件后,选中多个文件(可按住 Ctrl 或 Cmd 多选),右键 → Rename,输入带变量的模板即可。插件会实时预览结果,确认后才执行。
-
{{name}}是原文件名(不含扩展名),{{ext}}是扩展名,{{index}}从 1 开始编号,{{index0}}从 0 开始 - 模板里必须含
{{index}}或{{name}},否则所有文件会被重成同一个名字,触发系统覆盖警告 - 例如:想把
photo1.jpg、photo2.jpg改为img_001.jpg、img_002.jpg,模板写img_{{index0|03d}}.{{ext}}(注意:|03d格式化仅在部分插件版本支持,稳妥起见建议用img_{{index0}}.{{ext}}) - 重命名后,已打开的编辑标签页不会自动刷新内容或路径,需手动右键标签 →
Revert或按Ctrl+R重载
为什么 Rename 点了没反应或报错
常见现象是点击 Rename 后弹窗一闪而过、无提示、或直接报 [Error 3] The system cannot find the path specified —— 这几乎都和路径环境有关,不是插件坏了。
- Windows 下路径超 260 字符会失败,错误信息就是
[Error 3];需启用系统级长路径支持,或先把父目录名缩短 - 路径含中文、空格、括号时,插件一般能处理,但若系统终端或 Shell 环境未正确加载(比如 macOS 的
zshprofile 没被 Sublime 读取),底层调用可能静默失败 - 文件名以点开头(如
.gitignore)重命名后可能被隐藏,插件不提示,需肉眼核对是否真改成功 - 如果目标文件夹在
C:\Program Files\或 Windows 受控文件夹下,系统会静默拒绝写入,Rename 操作直接丢弃
怎么撤销整批重命名操作
Ctrl+Z 默认无效,必须提前开启插件的撤销支持,否则操作一提交就不可逆。
- 打开
Preferences → Package Settings → SideBarEnhancements → Settings – User - 添加配置:
"enable_undo_for_rename_operations": true(注意结尾逗号,别破坏 JSON 格式) - 保存后,每次
Rename都会生成一个可撤销批次;撤销时整个批次回滚,不是单个文件 - 该设置默认关闭,很多人重命名翻车后才发现没开——这是最容易被忽略的开关
复杂场景别硬靠插件模板
当需要正则替换、条件过滤(比如只改 .log 文件)、或跨子目录批量操作时,SideBarEnhancements 的模板语法很快就不够用。
- 推荐用终端 +
subl命令联动:右键侧边栏 →Open in Terminal here(需插件支持),或手动进项目根目录 - macOS/Linux 示例(把所有
old_*.js改为new_*.js):for f in old_*.js; do mv "$f" "${f/old_/new_}"; done - PowerShell 示例:
Get-ChildItem old_*.js | Rename-Item -NewName {$_.Name -replace '^old_', 'new_'} - 执行完别忘了在 Sublime 中按
Ctrl+R刷新侧边栏,或装AutoSetSyntax类插件监听文件变更
真正麻烦的不是怎么写模板,而是重命名后文件引用是否断掉——比如 HTML 里写的 <script src="old_main.js"></script> 不会自动更新。这类逻辑层变更,插件管不了,得靠搜索替换或构建工具。

















