SideBarEnhancements仅执行文件系统级操作,不修改代码内容;重命名后需手动用Ctrl+Shift+F全局替换import路径,并关闭atomic_save防止标签页路径错乱。

SideBarEnhancements 本身不提供变量重命名、函数提取等语言级重构能力,它只负责文件系统层面的操作——重命名、移动、复制、新建。想靠它“快速重构”,必须明确边界:它能帮你把 utils.js 改成 helpers.ts,也能把整个 old-api/ 文件夹拖进 src/api/,但不会自动更新代码里所有 import 路径或重命名变量。混淆这点,90% 的重构会出错。
为什么 Rename 后 import 还报错?
这是最常被当作“插件没用好”的问题,实际是行为预期错误。SideBarEnhancements 的 rename_file 命令调用的是系统 mv(macOS/Linux)或 MoveFileEx(Windows),只改磁盘路径,不扫描、不解析、不修改任何文本内容。
- 你右键重命名
api.js→client-api.ts,所有import { x } from './api.js'仍存在,运行时直接Module not found - 你移动
components/Button.vue到src/ui/Button.vue,模板里@/components/Button.vue的引用不会变 - Sublime 不维护 AST,也不读取
tsconfig.json或jsconfig.json,它不知道你用的是相对路径还是别名
怎么配合 Sublime 做最小安全重构?
把 SideBarEnhancements 当作“物理层操作工具”,再用 Sublime 原生能力补上逻辑层——这才是可落地的组合。
- 重命名前,先用
Ctrl+Shift+F全局搜索旧文件名(如"api.js"或./api),勾选Regular Expression,避免匹配到api_v2.js这类干扰项 - 在
Where栏填项目根路径(如./src),限定范围,防止误改 node_modules 或配置文件 - 替换为新路径时,注意斜杠方向:Windows 下写
./src/api/client-api.ts比src\api\client-api.ts更可靠(Sublime 默认用 POSIX 风格) - 移动文件后,立即检查控制台输出的“Replaced N occurrences”数字,若为 0,说明没搜到引用——大概率是你用了 Webpack 别名(如
@/api),得手动查webpack.config.js或vite.config.ts
批量重命名文件时模板怎么写才不出错?
批量改名不是为了图快,而是为了规避手误。但模板写错,比不批量还危险——它会一次性覆盖多个文件。
- 必须含动态变量:
{{name}}、{{index}}、{{ext}}至少一个;new.js这种静态名会导致全部文件被重命名为new.js,系统弹窗警告但你可能点“是” -
{{ext}}已带点,写{{name}}.{{ext}}得到index.html;写成{{name}}.{{ext}}.bak会变成index.html.bak,而{{name}}.js在index.ts上会产出index.js,丢扩展名 - 跨目录批量不支持:选中
src/a.js和tests/b.js→ 右键Rename Batch→ 插件静默忽略,菜单都不出现——它只接受同级多选 - 中文路径、空格、括号基本没问题,但 macOS APFS 默认不区分大小写,
IMG.PNG→img.png实际是覆盖,无提示
重命名后标签页还是旧名?这不是 bug 是设计
SideBarEnhancements 不通知 Sublime 更新视图缓存,所以你看到的仍是旧文件名,保存时写入的却是新路径——这会导致原文件被悄悄覆盖,且编辑器认为自己还在编辑旧文件。
- 最稳妥做法:重命名后立刻关闭对应标签页,再用
Ctrl+P搜新文件名重新打开 - 快捷替代:右键标签页 →
Reopen with Encoding(触发路径刷新),或按Ctrl+R刷新侧边栏(仅刷新树状结构,不刷新标签页名) - 长期方案:在用户设置里加
"atomic_save": false,否则重命名 + 保存 = 数据错乱;这个开关不关,就等于默认放弃一致性保障

















