Sublime Text原生不支持批量重命名,必须依赖SideBarEnhancements插件或外部命令;启用Batch Rename需安装Package Control、重启、设置"enable_batch_rename": true、在项目上下文中操作,并使用{{name}}或{{index}}等动态模板变量,否则将导致文件覆盖。

Sublime Text 原生不支持批量重命名文件,所有“右键多选→批量改名”的操作,都必须依赖插件或外部命令——这不是功能隐藏,是设计使然。
SideBarEnhancements 怎么启用 Batch Rename 菜单项
它不是装完就自动出现 Batch Rename,得确认几个硬性前提:
- 必须已安装
Package Control,否则插件根本装不上 - 安装
SideBarEnhancements后需重启 Sublime(ST4 某些版本还需手动执行Package Control: Satisfy Dependencies) - 右键侧边栏多选文件时,菜单是否显示
Batch Rename取决于设置:打开Packages/User/SideBarEnhancements.sublime-settings,确保含这一行:"enable_batch_rename": true - 若仍不出现,检查是否在「项目上下文」中操作——必须通过
Project → Add Folder to Project…显式添加目录,直接拖文件夹进窗口无效
模板里写 {{name}} 和 {{index}} 有啥区别
这是 SideBarEnhancements 的变量语法,混用或写错会导致静默失败或全变成空名:
-
{{name}}是原文件名(不含扩展名),{{ext}}是扩展名(含点,如.js) -
{{index}}从 1 开始编号,{{index0}}从 0 开始;补零写法是{{index|03}}(三位)或{{index0|02}}(两位) - 模板里**必须含至少一个动态变量**,否则所有文件会被重命名为完全相同的名字,触发系统覆盖警告(且无撤销提示)
- 错误写法:
backup、new_file.{{ext}}(若多个文件同名会冲突);安全写法:{{name}}_v2.{{ext}}、log_{{index0|02}}.{{ext}}
重命名后 Sublime 标签页还是旧名字,怎么同步
根源在 atomic_save 设置和插件不触发视图刷新:
- 默认
"atomic_save": true,重命名后标签页仍指向原文件句柄;编辑保存会写回已删除路径,或新建同名文件,原内容可能丢失 - 解决方法:在
Preferences → Settings用户设置中加"atomic_save": false,验证方式是重命名后看标签页标题是否立刻变新名 - 侧边栏不会自动刷新,需手动按
Ctrl+R(Windows/Linux)或Cmd+R(macOS) - 已打开的文件不会自动重载,必须关闭再双击重开,或右键标签页 →
Reopen with Encoding
为什么改完文件名,代码里引用还是旧的
SideBarEnhancements 只改磁盘文件名,不碰代码内容——这是最常被跳过的一步:
- 别指望插件自动更新
import './utils.js'这类引用;必须手动用Ctrl+Shift+F全局替换 - Where 栏填相对路径,如
./src/**/*.ts,./src/**/*.js(逗号分隔,勿加空格) - Find 填
\butils\.js\b(用\b单词边界防误替),Replace 填utils.ts,务必勾选Whole Word和Regular Expression - 替换前先点
Find看结果列表是否完整;若漏掉某些文件,大概率是编码不匹配(GBK 文件会被跳过)或.gitignore排除了路径
真正麻烦的从来不是改名本身,而是 atomic_save 关闭后保存行为变化、大小写重命名在 macOS APFS 上静默覆盖、以及模板变量漏写导致整批覆盖——这些点一旦出错,恢复成本远高于提前验证。











