Appearance
Gemini CLI 内置丰富的键盘快捷键体系,覆盖光标移动(Alt+B/F 按词跳转)、文本编辑(Ctrl+K 删至行尾)、历史搜索(Ctrl+R)、模式切换(Shift+Tab 循环审批模式)到完整 Vim 模式(支持 NORMAL/INSERT 双模式)。所有快捷键均可通过 ~/.gemini/keybindings.json 自定义。
键盘快捷键参考
本页列出 Gemini CLI 的所有默认键盘快捷键,以及自定义绑定的方法。
基础控制
| 功能 | 快捷键 |
|---|---|
| 确认选择 | Enter |
| 关闭对话框/取消焦点 | Esc / Ctrl+[ |
| 取消请求或退出(空输入时) | Ctrl+C |
| 退出 CLI(输入缓冲区为空时) | Ctrl+D |
光标移动
| 功能 | 快捷键 |
|---|---|
| 移到行首 | Ctrl+A / Home |
| 移到行尾 | Ctrl+E / End |
| 向上/向下移动一行 | Up / Down |
| 向左/向右移动一字符 | Left / Right |
| 向左移动一个单词 | Ctrl+Left / Alt+Left / Alt+B |
| 向右移动一个单词 | Ctrl+Right / Alt+Right / Alt+F |
文本编辑
| 功能 | 快捷键 |
|---|---|
| 删除光标到行尾 | Ctrl+K |
| 删除光标到行首 | Ctrl+U |
| 清空输入框 | Ctrl+C |
| 删除前一个单词 | Ctrl+Backspace / Alt+Backspace / Ctrl+W |
| 删除后一个单词 | Ctrl+Delete / Alt+Delete / Alt+D |
| 删除左侧字符 | Backspace / Ctrl+H |
| 删除右侧字符 | Delete / Ctrl+D |
| 撤销 | Cmd/Win+Z / Alt+Z |
| 重做 | Ctrl+Shift+Z / Shift+Cmd/Win+Z |
滚动
| 功能 | 快捷键 |
|---|---|
| 向上/向下滚动 | Shift+Up / Shift+Down |
| 滚到顶部 | Ctrl+Home / Shift+Home |
| 滚到底部 | Ctrl+End / Shift+End |
| 向上/向下翻页 | Page Up / Page Down |
历史与搜索
| 功能 | 快捷键 |
|---|---|
| 上一条历史 | Ctrl+P |
| 下一条历史 | Ctrl+N |
| 开始反向历史搜索 | Ctrl+R |
| 提交搜索选项 | Enter |
提示词输入
| 功能 | 快捷键 |
|---|---|
| 提交 Prompt | Enter |
| 排队(当前任务完成后执行) | Tab |
| 插入换行(不提交) | Ctrl+Enter / Shift+Enter / Ctrl+J |
| 在外部编辑器打开 | Ctrl+G |
| 粘贴 | Ctrl+V / Cmd/Win+V |
应用控制
| 功能 | 快捷键 |
|---|---|
| 切换调试控制台 | F12 |
| 切换完整 Todo 列表 | Ctrl+T |
| 切换 Markdown 渲染 | Alt+M |
| 切换 YOLO(自动批准)模式 | Ctrl+Y |
| 循环切换审批模式(Default/Auto-edit/Plan) | Shift+Tab |
| 展开/折叠内容块 | Ctrl+O |
| 清屏重绘 | Ctrl+L |
| 暂停 CLI 到后台 | Ctrl+Z |
后台 Shell 控制
| 功能 | 快捷键 |
|---|---|
| 切换后台 Shell 列表 | Ctrl+L |
| 切换当前后台 Shell 可见性 | Ctrl+B |
| 终止活跃后台 Shell | Ctrl+K |
| 焦点返回 Gemini | Shift+Tab |
特殊交互
!(空输入):进入/退出 Shell Mode?(空输入):切换快捷键面板\+Enter(行末):插入换行但不提交Esc快速按两次:清空输入,或浏览/倒带历史交互Ctrl+X(计划呈现时):在外部编辑器中打开计划文件
Vim 模式
在 /vim 或 settings.json 中 general.vimMode: true 启用。
模式切换
| 操作 | 快捷键 |
|---|---|
| INSERT → NORMAL | Esc |
| NORMAL → INSERT(光标处) | i |
| NORMAL → INSERT(光标后) | a |
| NORMAL → INSERT(行首) | I |
| NORMAL → INSERT(行尾) | A |
| 新建行(下方)进 INSERT | o |
| 新建行(上方)进 INSERT | O |
| NORMAL 模式清空输入 | Esc Esc |
NORMAL 模式导航
| 操作 | 键 |
|---|---|
| 左/下/上/右 | h / j / k / l |
| 行首/行尾 | 0 / $ |
| 第一个非空白字符 | ^ |
| 按词向前/向后 | w / b |
| 跳到首行/末行 | gg / G |
| 跳到第 N 行 | Ng 或 Ngg |
支持数字前缀(如 5j 向下 5 行,3w 前进 3 个词)。
NORMAL 模式编辑
| 操作 | 键 |
|---|---|
| 删除光标下字符 | x |
| 删除到行尾 | D |
| 删除整行 | dd |
| 修改到行尾 | C |
| 修改整行 | cc |
| 撤销 | u |
| 重复上次命令 | . |
自定义键绑定
在 ~/.gemini/keybindings.json 中添加/修改/移除绑定:
json
[
{
"command": "edit.clear",
"key": "cmd+l"
},
{
"command": "-app.toggleYolo",
"key": "ctrl+y"
},
{
"command": "input.submit",
"key": "ctrl+y"
}
]- 命令名前加
-解除绑定(如"-app.toggleYolo") - 同一键可绑定多个命令,不会自动解除其他绑定
- 修饰键:
ctrl/shift/alt(同义词:opt、option)/cmd(同义词:meta)
常见问题
Q: Shift+Tab 在 Windows Terminal 不起作用怎么办?
A: Shift+Tab 在 Node 20 及部分 Node 22 版本的 Windows Terminal 下有已知兼容性问题。建议升级到 Node 22 最新版或 Node 24,或使用 /settings 命令手动切换审批模式。
Q: macOS 的 Option 键快捷键(如 Alt+B)为什么不起作用?
A: macOS Terminal 默认不发送 Option 键的 Meta 序列。需要在终端设置中开启"将 Option 键用作 Meta 键"选项。iTerm2 和其他第三方终端通常默认支持,macOS 自带 Terminal.app 需手动配置。
Q: 如何查看正在发送的实际按键序列?
A: 在设置中开启"Debug Keystroke Logging",然后按 F12 打开调试控制台,可以看到每次按键的实际输入序列。