SideBarEnhancements批量重命名必须使用{{index}}或{{name}}模板,否则会导致文件名冲突覆盖;支持{{name}}_v2.{{ext}}、file_{{index0|02}}_new.{{ext}}等格式;需注意长路径、特殊字符及重命名后手动刷新和代码引用更新。

SideBarEnhancements 批量重命名必须用 {{index}} 或 {{name}} 模板
sublime Text 原生不支持批量改文件名,所有“加后缀”操作都得靠插件实现——而目前最稳定、适配性最好的就是 SideBarEnhancements。它不提供“添加后缀”按钮,但能通过模板变量达成等效效果。
常见错误是直接输入 backup 这样的固定名,结果所有选中文件被重命名为完全相同的名称,系统弹出覆盖警告,一不小心就丢数据。
- 想给
report.txt、log.txt都加上_v2后缀?模板写成:{{name}}_v2.{{ext}} - 想统一编号并加后缀,如
file_01_new.json?用:file_{{index0|02}}_new.{{ext}}({{index0|02}}表示从 0 开始、两位补零) - 模板里不含
{{name}}或{{index}},插件不会阻止你,但后果自负
windows 下长路径或空格文件名容易触发 WindowsError: [Error 3]
批量重命名看似点几下就完事,但在真实项目里,路径含中文、空格、括号,或者嵌套太深(超 260 字符),SideBarEnhancements 就可能静默失败,只在 Sublime 控制台报一行 WindowsError: [Error 3] The system cannot find the path specified,侧边栏文件名也不刷新。
- 提前检查:右键文件 → 属性 → “位置”字段是否已超长;若已启用 Windows 长路径支持(组策略或注册表),问题会减少
- 含空格的路径没问题,但像
[old]_config.js这类带方括号的,某些旧版插件会误解析为正则字符,建议先临时重命名去掉特殊符号 - 重命名后 Sublime 不自动重载标签页,已打开的同名文件仍显示旧内容,需手动
Ctrl+R刷新侧边栏,或关闭再重开文件
真正要“加后缀”,别只盯 Sublime —— 外部命令更稳更快
当你要处理几百个文件、规则复杂(比如“只给 .log 文件加 .bak 后缀,跳过子目录里的”),插件模板语法很快不够用。这时候不如切到终端,用系统原生命令,再回 Sublime 同步代码引用。
- macOS / linux:
for f in *.log; do mv "$f" "${f%.log}.log.bak"; done - Windows PowerShell:
Get-ChildItem *.log | Rename-Item -NewName { $_.Name -replace '.log$', '.log.bak' } - 执行完立刻在 Sublime 里按
Ctrl+Shift+F全局搜索旧后缀(如.log),替换成新后缀(如.log.bak),避免代码里路径失效
重命名后 import 或 require 路径不会自动更新
插件改了文件名,但 python 的 from utils import helper、JS 的 import api from './api.js' 这些引用,SideBarEnhancements 默认完全不管——它不是重构工具,只是文件系统操作界面。
- 如果你重命名了
api.js→api_v2.js,务必紧接着用Ctrl+Shift+F在整个项目搜api.js,替换为api_v2.js - 勾选
Whole word和Case Sensitive,防止把api_token也一起改了 - 动态导入(如
require(name + '.js')或importlib.import_module(f'{mod}_handler'))永远无法被文本替换捕获,这类逻辑得人工核对
批量加后缀这事,表面是改名字,实际是改依赖链。最容易被忽略的不是怎么输模板,而是改完之后没去扫一遍 import、src=、href= 这些硬编码路径——它们不会自己跟着变。