Sublime Text 不支持多窗口同步滚动,因其多窗口为独立进程且API禁止跨窗口操作;插件实现效果差、兼容性低、性能差;推荐使用分栏布局或外部diff工具替代。

Sublime Text 本身不支持多窗口之间的同步滚动,这是它的设计限制,不是配置没找对地方。
为什么 Sublime Text 没有原生同步滚动
Sublime Text 的多个窗口(Window → New Window)是完全独立的进程实例,彼此不共享视图状态。它不像 VS Code 或 JetBrains 系列那样内置“双屏对比”或“镜像滚动”机制。所谓“同步滚动”,本质需要监听一个窗口的 on_modified + view.show_at_center() 并主动驱动另一个视图跳转,而 Sublime 的 API 不允许跨窗口操作其他窗口中的 view 对象。
用插件强行实现的局限与风险
社区曾有插件如 SyncedScroll 或自定义 Python 插件尝试通过监听 on_selection_modified 和 set_viewport_position() 实现粗略同步,但实际效果差强人意:
- 仅适用于同一文件在两个 标签页(而非不同窗口)中打开 —— 这种情况可用
View → Layout → Columns: 2+ 手动拖入同一文件实现,且set_viewport_position()调用不稳定,容易偏移 - 不同文件、不同编码、不同缩放比例下,行高计算误差会导致滚动位置错位
- 启用后显著增加 CPU 占用,尤其在大文件中频繁触发事件
- Sublime Text 4 已移除部分旧版 API,多数老插件不再兼容
真正可行的替代方案
如果你目标是代码对比或并排查看,别硬刚同步滚动,换路径更可靠:
- 用
View → Layout → Columns: 2把当前窗口拆成左右两栏,再分别拖入两个文件 —— 这样是单窗口多视图,scroll_past_end和word_wrap行为一致,手动对齐效率远高于自动同步 - 用外部工具做 diff:选中两段文本 → 右键 →
Copy,粘贴到diffchecker.com或本地安装meld/WinMerge,它们专为比对设计,带语法高亮和行级差异标记 - 临时需求可开启
View → Word Wrap并调低wrap_width(如设为 80),让长行自动折行,减少横向滚动依赖
同步滚动在 Sublime 里属于“理论上能绕过但实践中不值得投入”的功能。把精力放在合理布局和善用外部 diff 工具上,反而省时间。










