ctrl+shift+t 是后进先出的单步弹栈操作,仅恢复最近关闭的文件;需聚焦编辑区、关闭的是固化标签页、无插件冲突;未保存文件不入栈;跨会话恢复依赖 session.sublime_session 文件。
Ctrl+Shift+T 不是“历史列表”,而是单步弹栈操作
Sublime Text 的 Ctrl+Shift+T(macOS 用 Cmd+Shift+T)默认绑定的是 reopen_last_closed_file 命令,它不维护一个可翻页的历史队列,而是一个**后进先出的栈(LIFO stack)**:每次关闭文件,就把该文件路径压入栈顶;每次按快捷键,就弹出栈顶并恢复——然后这个条目就永久消失了。
- 关了
A.js→B.py→C.css,此时按一次Ctrl+Shift+T只能恢复C.css;再按一次,才恢复B.py;第三次才是A.js - 如果中间又打开了新文件、切换了窗口、甚至只是点了下侧边栏,栈不会清空,但若重启 Sublime,整个栈会被丢弃(除非启用了
hot_exit和remember_open_files) - 未保存的文件(标题带
*)默认不入栈——这是有意设计,防止误恢复脏数据
为什么 Ctrl+Shift+T 按了没反应?常见断点排查
这不是快捷键失效,而是触发条件没满足。最常被忽略的三个前提:
- 焦点必须在编辑区(即光标在代码里闪烁),如果当前聚焦在命令面板、搜索框、侧边栏或状态栏,
Ctrl+Shift+T会静默失败——先按Esc确保退出所有浮层 - 你关掉的不是「正式标签页」:双击侧边栏打开的文件属于「预览标签」,关闭后不计入恢复栈;必须双击后**再按一次 Enter 或点击标签名使其固化**,才能被
reopen_last_closed_file记录 - 插件冲突:某些插件(如
Origami或SideBarEnhancements)会劫持Ctrl+Shift+T绑定。打开Preferences → Key Bindings,搜索"ctrl+shift+t",确认用户设置中只有一条明确指向reopen_last_closed_file
想看完整关闭历史?别依赖 Ctrl+Shift+T,改用 Ctrl+P + “most recently”
原生没有“已关闭文件列表”,但你可以绕过限制:按 Ctrl+P(Cmd+P),直接输入 most recently,Sublime 会调出一个按访问时间倒序排列的全量文件历史面板——它包含所有近期打开过的文件,无论是否已关闭。