Typewriter Scrolling插件通过监听光标变动并延迟防抖实现打字机式居中,ScrollToCenter则响应滚动事件即时居中;二者可共存但建议按写作或代码浏览习惯择一使用。

scroll_to_center 命令只响应手动触发,不自动跟随光标
直接按 scroll_to_center 快捷键(比如 ctrl+shift+p)确实能让当前行跳到视图中央,但它是一次性动作:光标一动(比如敲回车、按方向键、跳转到定义),屏幕不会自动跟上。你得反复按快捷键,写作或编码中很快就会断节奏。
常见失效场景包括:
- 输入换行后,光标移到下一行,但视图还停在原位置
- 用
ctrl+↓跳段落,或pageup/pagedown滚动,scroll_to_center完全不触发 - 粘贴大段文本后光标停在末尾,执行命令会把最后一行强行拉到中间,导致上方大片空白
- 分屏(split view)下,只作用于当前面板,另一侧不同步
follow_cursor 设为 true 不能解决滚动时居中
"follow_cursor": true 看似相关,但它只在“光标位置变化”时生效(如 ctrl+g 跳行、ctrl+click 跳转定义),而对“视口滚动”完全无感。你用鼠标拖滚动条、触控板滑动、按滚轮,Sublime 认为“光标没动”,就不会重居中。
这不是 bug,是设计如此——Sublime 的滚动逻辑和光标定位逻辑彼此独立,原生不提供“滚动钩子”。
所以即使设置了 "follow_cursor": true,你快速按 3 下 pagedown,光标会一路滑到底部,而不是逐次出现在每页正中央。
Typewriter Scrolling 插件监听光标变更,延迟防抖更实用
这是目前最接近“真打字机体验”的方案:它监听每次 on_selection_modified 事件,在光标变动后自动调用 scroll_to_center,并内置 delay_ms 防抖(默认 150ms),避免快速移动时光标抖动或滚动卡顿。
安装与调参要点:
- 用 Package Control 安装插件,搜索
Typewriter Scrolling,安装后默认启用,无需重启 - 调整参数路径:
Preferences → Package Settings → Typewriter Scrolling → Settings -
"delay_ms": 150—— 太小(如 0)易卡顿,太大(如 500)会有明显滞后 -
"vertical_centering": 0.4—— 推荐值,让光标略偏上,留出更多上方上下文空间 -
"ignore_scopes": ["text.html.markdown"]—— 可排除 Markdown 预览窗等干扰区域
ScrollToCenter 插件专治“滚动时居中”,零配置即用
如果你主要痛点是“手动滚动(滚轮/方向键/PageDown)后光标偏了”,那 ScrollToCenter 更对症:它监听所有滚动事件(包括 scroll_lines、move、drag_select),并在每次滚动结束后执行 view.show_at_center(view.sel()[0].begin())。
关键事实:
- 安装后立即生效,无任何配置项,默认行为就是“每次滚动后居中光标”
- Sublime Text 4 全支持;ST3 需用 v1.2.0 以前的版本(新版已放弃 ST3 支持)
- 禁用方式简单:命令面板运行
ScrollToCenter: Toggle,或直接删插件目录 - 分屏下各面板独立响应,不会互相干扰
真正难处理的是混合场景:既要光标移动时居中,又要滚动时居中。这时候两个插件可以共存,但要注意 Typewriter Scrolling 的 delay_ms 和 ScrollToCenter 的即时响应可能轻微冲突——建议优先选一个,根据主要使用习惯定:写作多选前者,代码浏览多选后者。
















