sublime text 不支持真正平滑滚动动画,唯一带动画感的是 animate_inert_panning(启用触控板/滚动条拖拽后惯性滑行),需在用户设置中添加 "animate_inert_panning": true;scroll_speed 仅减小滚动步长,无插值动画;editor.smoothscrolling 无效。

Sublime Text 原生不支持“平滑滚动”(即带缓动动画的滚动),所谓“开启平滑滚动”本质是启用惯性滑行或优化视觉反馈,不是 VS Code 那种 editor.smoothScrolling。
怎么启用 animate_inert_panning(触控板/鼠标拖拽惯性滑动)
这是 Sublime 唯一真正带“动画感”的滚动相关设置,影响的是你按住滚动条拖动、或用触控板快速滑动后是否继续滑行一段距离。
- 打开
Preferences → Settings,在右侧用户配置中添加:"animate_inert_panning": true - 设为
false时,松手即停;设为true后会有轻微滑行,类似 macOS 或 iPad 的手感 - 低配设备或对响应延迟敏感者建议关掉——它依赖 UI 线程动画帧,大文件里可能微卡
- 该设置不影响鼠标滚轮、方向键、
Ctrl+G跳转等行为,只作用于“拖拽视图”这一种操作
为什么 scroll_speed 不等于“平滑”,只是调慢滚动步长
很多人误以为设 "scroll_speed": 0.3 就能获得“平滑滚动”,其实它只是让每次滚轮或拖动滚动条时移动的行数变少,视觉上更“细腻”,但仍是瞬时跳变,没有插值动画。
-
"scroll_speed"只对鼠标滚轮和滚动条拖拽生效,范围建议 0.1–0.8;低于 0.1 会导致拖动卡顿、响应迟钝 - 它和
animate_inert_panning是正交设置:一个管“每步多大”,一个管“停不停车” - 别在配置里写
"editor.smoothScrolling": true——Sublime 完全不认识这个字段,写了也白写,还干扰排查
想让光标“看起来更顺”?别碰动画,改样式和节奏
Sublime 所有光标跳转(Ctrl+P、F4、方向键、点击)都是帧同步瞬移,无法加动画。所谓“平滑光标移动”是伪需求,真正可调的是视觉确定性和导航效率。
- 用
"caret_style": "phase"或"smooth"让光标闪烁时带轻微动态,削弱“瞬移割裂感” - 配合
"caret_extra_width": 2加宽光标,提升在密集代码里的辨识度 - 禁用闪烁:
"caret_blink": false,减少干扰,尤其适合长时间编码 - 高频跳转时,比“光标怎么动”更重要的是快捷键节奏:
Ctrl+Alt+-(回退)和Ctrl+Shift+-(前进)比反复按方向键更高效
自动滚动到光标位置:得靠插件,且必须加判断
默认情况下,Ctrl+P 搜索跳转后光标可能跑到屏幕外,Sublime 不会自动滚动过去。直接写 "scroll_to_cursor": true 无效——这个配置项根本不存在。
- 最轻量方案:新建插件
Packages/User/auto_scroll_to_cursor.py,监听on_selection_modified并执行scroll_to_cursor - 关键要加
{"show_at_center": False},否则每次都会强行把光标推到屏幕正中,打断阅读流 - 高频触发下可能卡顿,建议加简单判断:只在光标确实移出当前视口时才滚动(比如对比
view.visible_region()和view.sel()[0].begin()) - 别用宏或命令绑定模拟——稳定性差,且无法覆盖鼠标点击等所有场景
真正影响“滚动体验”的从来不是某个开关,而是系统级滚轮设置、插件响应逻辑、以及你是否意识到 Sublime 的设计哲学:用确定性换性能,用瞬时响应换动画幻觉。调对地方,比强求“平滑”有用得多。











