Sublime Text 的 PageUp/PageDown 默认按视口行数滚动,不可配置;如需固定行数滚动,须自定义 scroll_lines 命令绑定;但会牺牲响应式导航优势,推荐用 Ctrl+G 精准跳转替代。

PageUp/PageDown 一次滚动多少行,由系统决定,Sublime 不提供配置项
Sublime Text 本身没有 page_scroll_lines 或类似设置,page_up 和 page_down 命令的行为完全继承操作系统默认的“一页高度”——通常是当前可视区域高度(即窗口显示的行数),而非固定行数。你改不了这个值,也找不到对应配置项。
这意味着: - 在 30 行高的窗口里按 PageDown,就往下翻 30 行左右; - 拉大窗口再试,翻的行数立刻变多; - 字体调大、行高增加,一页能显示的行数减少,PageDown 实际滚动距离反而变短。
这不是 bug,是 Sublime 的设计逻辑:它把 PageUp/PageDown 当作“视口级导航”,不是“行数级导航”。所以别在 Preferences → Settings 里搜 page 白费时间。
想让 PageUp/PageDown 滚动固定行数?只能靠自定义命令 + 键位绑定
如果你真需要“每次按 PageDown 就精确向下移 20 行”,就得绕过原生行为,自己写命令绑定。但要注意:这会覆盖系统默认的视口滚动,失去响应式优势。
操作步骤如下:
- 打开 Preferences → Key Bindings(即 Default (YourPlatform).sublime-keymap)
- 在右侧用户配置中添加:
[{
"keys": ["page_down"],
"command": "scroll_lines",
"args": {"amount": -20}
}, {
"keys": ["page_up"],
"command": "scroll_lines",
"args": {"amount": 20}
}]
说明:
- amount 是负数表示向下滚动(和 Sublime 内部约定一致)
- 值为 -20 即向下滚 20 行,20 即向上滚 20 行
- 此绑定仅对编辑区生效,不影响侧边栏或控制台
- 若同时装了 ScrollSync 或 MouseWheelSwitcher 类插件,它们可能劫持 page_up,需先禁用测试
为什么别轻易改 PageUp/PageDown?容易踩的坑
看似灵活,实则破坏编辑直觉。常见问题包括:
- 光标快速移出可视区域,无法预判落点(尤其大文件)
- 配合
auto_center使用时,页面跳动剧烈,失去视觉连贯性 - 与
goto_line、show_at_center等命令冲突,导致光标位置异常 - 远程桌面(如 ToDesk/TeamViewer)下,PageUp/PageDown 事件常被截断,自定义绑定反而失效更频繁
另外,macOS 用户还需注意:page_up/page_down 在触控板三指滑动时不会触发该绑定——它只响应物理键盘按键。
真正实用的替代方案:用 Ctrl+G 跳转 + 行号记忆
比起强行固定翻页行数,更符合 Sublime 工作流的做法是:放弃 PageUp/PageDown 的“页”概念,改用精准跳转。
例如:
- 按 Ctrl+G(Windows/Linux)或 Cmd+G(macOS),输入 100 直接跳到第 100 行
- 再按 Ctrl+G 输入 +50,就在当前行基础上加 50 行
- 配合状态栏右下角显示的 127:5(第 127 行第 5 列),随时掌握当前位置
这种组合不依赖滚动灵敏度,不被 DPI 或驱动干扰,且所有平台行为一致。多数老用户早就不靠 PageUp/PageDown 导航了——它更适合浏览,不适合编程定位。
真正难调的从来不是翻页量,而是你怎么让眼睛和手指记住那一行在哪。工具只是延伸,不是替代。











