sublime text原生不支持同步滚动,插件syncedscroll仅对同一窗口同group的视图生效;跨窗口无效,因进程隔离且api禁止跨窗操作;跨文件需手动启用"sync_across_files"并统一word_wrap设置;无插件时可用auto_center+ctrl+g行号对齐模拟视觉同步。

Sublime Text 原生不支持同步滚动,所谓“安装插件实现同步”必须满足三个硬性前提:同一窗口、同一 group、视图绑定正确;否则装了也白装。
SyncedScroll 插件只对同 group 的视图生效
它监听的是当前窗口内各 group 中 view 的 selection 变化,再调用 set_viewport_position() 调整另一视图滚动位置。跨窗口(File → New Window)完全无效,因为不同窗口是独立进程,API 不允许访问其他窗口的 view 对象。
- 确认两个视图都在同一个窗口中:按
Ctrl+Alt+2分屏后,把文件拖进右栏(出现虚线框时松手),不是拖到标签栏边缘 - 检查状态栏左下角是否显示
Group: 0和Group: 1;没显示说明焦点没在目标 group,插件不会触发 - 右键标签页 →
Move to Group → Group 1比拖拽更可靠,避免因释放位置不准导致失败 - 如果其中一个视图是
Git → Diff生成的只读快照,SyncedScroll默认不接管——它没有buffer_id(),插件无法识别为合法目标
跨文件同步需手动开启 sync_across_files
默认情况下,SyncedScroll 只同步「同一文件的多个视图」或已建立 diff 关系的视图。想让 a.py 和 b.py 在双栏中滚动联动,必须改插件配置:
- 打开
Preferences → Package Settings → SyncedScroll → Settings - 在用户设置中添加:
"sync_across_files": true - 同时确保两栏都启用或都禁用
word_wrap,否则行高计算误差会导致视觉错位 - 若其中一栏是只读(比如通过
File → Open Read-Only打开),插件会跳过该视图
不用插件也能“模拟同步”,但必须配对使用 auto_center 和 Ctrl+G
这是最轻量、最稳定、不依赖第三方代码的方案,适用于临时比对或长文件上下文对照。
- 在
Preferences → Settings用户配置中加入三行:"auto_center": true、"center_selection_on_scroll": false、"scroll_past_end": true - 重启 Sublime 确保生效(尤其 Sublime Text 4,部分设置热加载不可靠)
- 在左栏按
Ctrl+G输入目标行号(如142),回车;切到右栏,同样按Ctrl+G 142 - 此后任意滚动,两栏都会以第 142 行为中心显示——前提是两栏光标行号差值不能太大(比如一个在 10 行、一个在 200 行,居中后视野就完全错开了)
真正容易被忽略的是:同步滚动在 Sublime 里从来不是“开个开关就能用”的功能。它高度依赖视图创建方式、group 焦点状态、甚至文件编码和缩放比例。试图用拖拽副本、New Window 或外部 diff 工具强行套用同步逻辑,最终都会在保存、搜索或跳转时暴露断裂点。











