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

Sublime Text 原生不支持批量重命名,所有“右键多选→改名”操作都必须依赖 SideBarEnhancements 插件,且必须满足三个硬性条件:项目上下文、启用 enable_batch_rename、模板含 {{name}} 或 {{index}} —— 缺一不可,否则菜单不出现、输入无效、或静默覆盖文件。
为什么右键 Batch Rename 菜单项根本不显示
这不是插件没装好,而是 Sublime 没识别出合法操作范围。SideBarEnhancements 的批量功能只对「已显式加入项目的文件夹内选中的文件」生效:
- 必须通过
Project → Add Folder to Project…添加目录;直接拖文件夹进窗口无效 - 安装 SideBarEnhancements 后需重启 Sublime(ST4 某些版本还需执行
Package Control: Satisfy Dependencies) - 打开
Packages/User/SideBarEnhancements.sublime-settings,确认含这一行:"enable_batch_rename": true - Windows 用户若路径在
C:\Program Files\或受控目录下,系统会静默拒绝,无报错提示
模板里写 {{name}} 和 {{index}} 有啥区别
这是 SideBarEnhancements 的变量语法,混用或漏写会导致静默失败或全变成空名:
-
{{name}}是原文件名(不含扩展名),{{ext}}是扩展名(含点,如.ts) -
{{index}}从 1 开始编号,{{index0}}从 0 开始;补零写法是{{index|03}}(三位)或{{index0|02}}(两位) - 模板里必须含至少一个动态变量,否则所有文件会被重命名为完全相同的名字,触发系统覆盖警告(且无撤销提示)
- 错误写法:
backup、new_file.{{ext}}(若多个文件同名会冲突);安全写法:{{name}}_v2.{{ext}}、log_{{index0|02}}.{{ext}}
重命名后标签页还是旧文件名,保存却写到新文件里
这是最危险的隐藏坑,根源在 atomic_save 设置未关:
- 默认开启的
atomic_save会让 Sublime 继续指向旧路径句柄,重命名后标签页标题不变,编辑保存时实际写入的是新文件,原文件可能被覆盖 - 解决方法:打开
Preferences → Settings,在右侧用户设置中加入:"atomic_save": false - 验证方式:重命名
a.txt为b.txt后,标签页标题应立刻变成b.txt,而不是a.txt * - 副作用仅限大文件保存略慢,日常开发几乎无感;不关它,等于主动放弃文件一致性保障
重命名完成但侧边栏和已打开文件都没刷新
SideBarEnhancements 执行的是系统级 os.rename(),不触发 Sublime 内部视图刷新机制:
- 侧边栏不会自动更新,需手动按
Ctrl+R(Windows/Linux)或Cmd+R(macOS)刷新 - 已打开的文件标签页不会自动重载内容或路径,需手动关闭再双击重开,或执行
File → Revert - 若频繁操作,可装
AutoSetSyntax或SyncedSidebar类插件监听变更(但非 100% 可靠) - macOS 上若重命名涉及大小写变化(如
FILE.TXT → file.txt),在默认 APFS 卷上实际是覆盖而非重命名,无提示
真正麻烦的从来不是怎么输模板,而是改完之后 Sublime 还以为自己在编辑老文件——这点连很多用了五年的用户都会忽略。


















