Ctrl+Shift+F(或Cmd+Shift+F)配合Where框输入open_files是搜索所有已打开未保存Tab的唯一可靠方式;需确保项目模式开启、无插件干扰、排除规则未误杀,且替换后须手动Save All才能持久化修改。

Ctrl+Shift+F + open_files 是唯一可靠路径
想搜所有已打开但未保存的 Tab,不能依赖 Ctrl+F(它只扫当前文件),也不能让 Where 框空着(那会扫整个项目目录)。必须用 Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS),并在面板底部的 Where 输入框里**手动填入 open_files**——这是 Sublime 内部识别“已打开标签”的专用关键字,官方文档几乎不提,但实测唯一稳定生效的方式。
open_files 失效的三个典型原因
填对了 open_files 却没结果?不是功能坏了,而是环境没对齐:
- Sublime 未处于项目模式:左下角状态栏没显示类似
~/my-project/的路径,而是只开了单个文件——此时open_files退化为仅搜索那个文件本身 - 插件干扰:旧版
ProjectManager或某些自定义插件会覆盖open_files行为,可临时禁用插件验证 - 文件被排除规则误杀:即使未保存的文件名是
untitled,若Preferences → Settings – User中有"file_exclude_patterns": ["*.tmp"]这类配置,Sublime 对 unsaved 文件的判定逻辑特殊,可能直接跳过
替换后内容不保存是默认行为,不是 Bug
用 Ctrl+Shift+F 做全局替换后,所有已打开文件里的修改都停留在内存中:
- 标签页右上角不会出现 * 星号
-
Ctrl+S只保存当前激活的文件,其余修改仍“悬浮”着 - 必须手动执行
File → Save All,或快捷键组合:Ctrl+K松开后再按Ctrl+B - 关掉 Sublime 前忘了这步?所有替换内容立即丢失,且无任何提示
模糊匹配文件名 ≠ 模糊搜索已开 Tab 的内容
Ctrl+P 输入 upcr 能快速跳转到 user_profile_controller.rb,但这和“在已开 Tab 里搜文本”是两套机制。前者是文件名模糊索引,后者是内存中实时文本扫描。别指望在 Ctrl+P 里输入变量名去查它出现在哪些已开文件里——那是 Ctrl+Shift+F + open_files 的职责。混淆这两者,是多数人卡住的第一步。











