Sublime Text原生不支持批量重命名,必须依赖SideBarEnhancements插件并满足三条件:项目上下文、启用"enable_batch_rename":true、模板含{{name}}或{{index}}等动态变量;否则菜单不显示、操作无效或文件被覆盖。

Sublime Text 原生不支持批量重命名文件,所有“右键多选→批量改名”操作都必须依赖 SideBarEnhancements 插件,且必须满足三个硬性条件:项目上下文、启用 enable_batch_rename、模板含动态变量(如 {{index}} 或 {{name}})——缺一不可。
SideBarEnhancements 的 Batch Rename 菜单项为什么没出现
这不是插件没装好,而是 Sublime 没识别出合法操作范围。常见原因有:
- 没通过
Project → Add Folder to Project…显式添加目录,仅拖拽文件夹进窗口无效 - 插件已安装但未重启 Sublime,或 ST4 某些版本需手动执行
Package Control: Satisfy Dependencies -
Packages/User/SideBarEnhancements.sublime-settings中缺少"enable_batch_rename": true这一行 - 多选的文件不在同一层级目录下(跨子目录不支持)
- 路径位于
C:\Program Files\或 macOS 的/System等受控位置,系统静默拒绝写入
模板里写 {{name}} 和 {{index}} 有什么区别
这是 SideBarEnhancements 的变量语法,混用或漏写会导致静默失败或覆盖:
-
{{name}}是原文件名(不含扩展名),{{ext}}是扩展名(含点,如.js) -
{{index}}从 1 开始编号,{{index0}}从 0 开始;补零写法是{{index|03}}(三位)或{{index0|02}}(两位) - 模板中必须含至少一个动态变量,否则所有文件会被重命名为完全相同的名字(例如输
backup就真全变成backup) - 错误写法:
new_file.{{ext}}(若多个文件同名会冲突);安全写法:{{name}}_v2.{{ext}}、log_{{index0|02}}.{{ext}}
重命名后标签页还是旧文件名、侧边栏不刷新怎么办
这不是 UI 卡顿,是 Sublime 内部路径缓存未同步,最危险的坑在于 atomic_save 默认开启:
- 打开
Preferences → Settings,在右侧用户设置中加入"atomic_save": false,否则重命名后保存会写回旧路径或新建同名文件 - 重命名完成后,已打开的标签页不会自动更新标题和内容,需手动按
Ctrl+R(Windows/Linux)或Cmd+R(macOS)刷新侧边栏 - 已打开的文件不会自动重载,需右键标签页 →
Revert,或关闭后重新双击打开新文件名 - macOS 上若重命名仅改变大小写(如
FILE.TXT → file.txt),APFS 默认为 case-insensitive,实际是覆盖而非重命名,无提示
如何让 Ctrl+Z 撤销整批重命名操作
该功能默认关闭,且只能在操作前启用,事后开启无效:
- 在
Packages/User/SideBarEnhancements.sublime-settings中添加"enable_undo_for_rename_operations": true - 必须在重命名前就配置并保存,否则弹窗里的 “Enable undo for rename operations” 复选框是灰色不可用的
- 启用后,确认批量重命名时勾选该选项,之后可用
Ctrl+Z撤销整批操作 - 注意:撤销只作用于文件系统层面的
os.rename(),不恢复 Sublime 标签页状态,已打开的旧标签页仍需手动处理
真正麻烦的从来不是怎么输模板,而是改完之后 Sublime 还以为自己在编辑老文件——这点连很多用了五年的用户都会忽略。

















