pageup/pagedown缺失时应手动绑定cursormove命令到自定义键,如ctrl+up/down并设value为25行,配合when条件确保仅在编辑器生效;mac需用cmd而非ctrl,且须排查键被系统或扩展拦截。

PageUp/PageDown 键缺失时怎么映射等效功能
VSCode 不会自动把其他键(比如 Fn+↑ 或 Ctrl+↑)当成 pageup/pagedown 处理,必须手动绑定命令。关键是选对 command 和 when 条件,否则按了没反应。
-
pageup和pagedown是 VSCode 内部识别的键名,不能写成pgup、PgDn或中文 - 如果你用的是 Mac 笔记本或紧凑键盘,
Fn+↑通常触发的是系统级 PageUp 行为,但 VSCode 默认不监听——得在keybindings.json里显式写"key": "fn+up"才能捕获(注意大小写和符号) - 更稳妥的做法是避开物理键名歧义:直接绑定
Ctrl+Up到cursorMove命令,控制滚动行数,效果一样且稳定
用 cursorMove 替代翻页,控制实际滚动行数
原生 pageup/pagedown 在不同缩放、字体、换行状态下翻动行数不固定,容易误判。用 cursorMove 可强制每次移动 N 行,行为可预测。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
- 向下滚动 25 行:
{"key":"ctrl+down","command":"cursorMove","when":"editorTextFocus","args":{"to":"down","by":"line","value":25}} - 向上滚动 25 行:
{"key":"ctrl+up","command":"cursorMove","when":"editorTextFocus","args":{"to":"up","by":"line","value":25}} - 如果开了自动换行,想按屏幕显示行滚动,把
"by":"line"换成"by":"wrappedLine" -
when条件必须加,否则在终端、设置页等非编辑器区域也会触发,可能干扰操作
终端里切换标签页不能靠 PageUp/PageDown?
VSCode 终端的标签页切换命令是 workbench.action.terminal.focusNextPane 和 workbench.action.terminal.focusPreviousPane,和编辑器标签页的 workbench.action.nextEditor 完全不同。别混用。
- 即使你把
Ctrl+PageDown绑定到workbench.action.nextEditor,它也只切编辑器,对终端标签页无效 - 终端内多个 Shell 实例(如 bash/zsh/PowerShell)必须先各自打开成独立标签页,再用上述 terminal 专用命令切换
- 没有“按 Shell 类型跳转”的内置命令,所谓“一键切到 PowerShell”只能靠预设 profiles + 手动命名 + 标签页顺序记忆
为什么改完 keybindings.json 没生效
常见不是语法错,而是冲突或上下文没匹配上。VSCode 加载快捷键有优先级:用户配置 > 工作区配置 > 默认配置,且 when 条件不满足时整条规则静默失效。
- 检查是否被其他扩展覆盖:打开命令面板 → 运行
Developer: Toggle Developer Tools→ 切到 Console,按你的自定义键,看有没有报command 'xxx' not found - 确认
command字符串拼写完全正确,比如cursorMove不是cursor move,workbench.action.terminal.focusNextPane少一个点就失败 - Mac 用户注意修饰键写法:
"cmd+up"不是"ctrl+up",大小写敏感,空格不能多也不能少 - 改完保存 JSON 后无需重启,但如果有语法错误(比如末尾多逗号),VSCode 会自动禁用整份用户快捷键配置,界面右下角有黄色警告提示
Developer: Open Keyboard Shortcuts (JSON),再开 Developer: Toggle Keyboard Shortcuts Troubleshooter,按一次键,看日志里实际触发了什么。










