sublime text撤销步数默认最多100步且不可配置,真正可靠的回退方式是:启用hot_exit、核心文件设系统级只读、安装local history插件并满足保存与路径条件;撤销栈易被切换标签页或查找等操作截断,未保存时关闭即丢失,而recovery缓存文件才是最稳妥的兜底方案。

Sublime Text 的撤销步数根本不能“无限制”
它默认最多存 100 步,且这个值是硬编码在编辑器底层的——你改配置项 undo_stack_size 或类似名字,根本不起作用。Sublime 没开放这个参数,所有试图在 Preferences → Settings 里加 "undo_stack_size": 0 或 "max_undo_size": -1 的操作,都会被忽略。
真正能延长有效回退时间的三个实操点
不是靠“增大步数”,而是绕过步数限制本身:
-
hot_exit必须设为true(默认就是),否则关窗口即清空所有未保存文件的撤销栈 - 核心文件提前设系统级只读:Windows 右键属性勾“只读”,macOS 右键→简介→勾“锁定”,Linux 执行
chmod 444 /path/to/file;这样误删时Ctrl+S直接报错,不给撤销机会,反而保住原始内容 - 装
Local History插件并确保满足三个条件:文件已用Ctrl+S保存过、路径没变(不能删了重建同名)、插件启用;它按时间戳存快照,和内存撤销栈完全无关
为什么你按 Ctrl+Z 突然没反应?不是步数用完了
更大概率是撤销栈被截断了:
- 切换过标签页或点击过其他文件——栈立刻重置,不是“清空”,是“销毁后新建”
- 执行过
Ctrl+F查找、F12跳转、Ctrl+P打开文件——这些非编辑动作会中断栈连续性 - 用户设置里
"drag_text": true开着,会导致Ctrl+U(光标倒退)失效,间接干扰你对撤销行为的判断
别信“无限撤销”,信缓存文件兜底
只要 hot_exit 为 true 且 Sublime 没被强制杀进程,崩溃或意外退出后,还能从本地 Recovery 目录捞回内容:
- Windows 路径:
C:\Users\用户名\AppData\Roaming\Sublime Text 3\Local\Recovery\ - macOS 路径:
~/Library/Application Support/Sublime Text 3/Local/Recovery/ - 里面是带时间戳的
.tmp文件,用任意文本编辑器打开,搜关键词就能定位
这比依赖撤销栈可靠得多——它不看步数,不care你切没切标签页,只要进程没被 kill -9 就有戏。











