BufferScroll 需配合 hot_exit: true 和 Ctrl+Q/Cmd+Q 正常退出才能生效,否则光标、滚动、折叠状态无法恢复;其状态按视图粒度保存,非文件级,多实例或路径/编码变动会导致 session 失效。

BufferScroll 能记住光标位置、滚动偏移、折叠状态等,但必须配合 hot_exit: true 和正常退出才能生效;否则一关就丢,装了也白装。
BufferScroll 安装后为什么没效果?
常见现象是:重启 Sublime 后光标仍在文件顶部、折叠全部展开、滚动条回到最上方——这不是插件失效,而是会话机制未触发。
-
hot_exit: true必须开启(默认就是 true,但有人手动关过) - 必须用
Ctrl+Q(Windows/Linux)或Cmd+Q(macOS)退出,仅关闭窗口不算“正常退出” - 如果项目中存在路径变动(比如重命名文件夹)、编码不一致(如 UTF-8-BOM vs UTF-8),session 里缓存的位置数据会被直接丢弃
- 多实例并行时,只有一个 Sublime 实例能成功写入
Auto Save Session.sublime_session,其余静默失败
如何验证 BufferScroll 是否真在工作?
别只看光标有没有回到原位,要确认三项关键状态是否同步恢复:
- 打开一个长文件,手动滚动到中间某行,折叠几段代码,再把光标停在某处
- 用
Ctrl+Q退出,再重新启动 Sublime 并打开同一文件 - 检查:
光标位置、滚动条偏移量、折叠状态是否三者都还原 —— 缺一不可 - 若只有光标回来了但滚动条卡在顶部,大概率是
auto_indent或scroll_past_end设置干扰了渲染逻辑
BufferScroll 和原生跳转历史(Ctrl+U)冲突吗?
完全不冲突,但用途完全不同:
-
Ctrl+U/Ctrl+Alt+←操作的是jump_list,只记录 F12、Ctrl+P、鼠标点击等导航行为,上限 16 条,重启即清空 - BufferScroll 记录的是
buffer state,包括光标坐标、视图滚动像素、折叠节点 ID、书签标记等,依赖 session 文件持久化 - 两者可共存:BufferScroll 负责“打开文件时恢复”,
Ctrl+U负责“编辑中快速回溯跳转点” - 如果你发现打开文件后光标位置不对,优先查 BufferScroll;如果想回到刚改过的那行,
Ctrl+U帮不上忙,得换插件如JumpToLastEdit
真正容易被忽略的点是:BufferScroll 的状态保存粒度是「每个视图」,不是「每个文件」。同一个文件用 New View into File 打开两个标签页,它们各自有独立的滚动和光标记忆;而用 Clone File 或拖拽新建窗口,则不会共享 buffer,BufferScroll 也就无法联动跟踪。

















