Gemini CLI: Customizable Keyboard Shortcuts and Vim Mode Expansion
Gemini CLI v0.35.0 introduced fully customizable keyboard shortcuts, letting developers remap any key binding via a ~/.gemini/keybindings.json file that follows the same VS Code-style schema. The release also substantially expanded vim mode with yank/paste (registers), new motion targets (f/F/t/T, X, ~, r, df/dt), and CJK input support for Japanese, Chinese, and Korean developers. Extended Kitty terminal protocol support unlocks key combinations unavailable under older terminal protocols.
Sources & Mentions
5 external resources covering this update
Gemini CLI v0.35.0 Release Notes
GitHub
Feature Request: Allow Customization of Keyboard Shortcuts Issue #8402
GitHub
feat(cli): customizable keyboard shortcuts PR #21945
GitHub
Enhance Vim Mode with Visual Mode, Registers, and Advanced Text Objects Issue #15536
GitHub
feat(ui): vim yank/paste with unnamed register PR #22026
GitHub
Customizable Key Bindings Arrive in Gemini CLI
Gemini CLI v0.35.0 delivers one of the most-requested terminal UX improvements since the tool launched: a fully customizable keybinding system. Developers can now override, extend, or remove any default keyboard shortcut by creating a keybindings.json file at ~/.gemini/keybindings.json.
VS Code-Style Configuration
The configuration format intentionally mirrors VS Code's keybinding schema — a deliberate design choice that makes the system immediately familiar to the majority of the developer audience. Each entry in the JSON array specifies a command and a key:
[
{ "command": "edit.clear", "key": "cmd+l" },
{ "command": "-app.toggleYolo", "key": "ctrl+y" }
]
The - prefix on a command name unbinds a key rather than rebinding it, giving developers precise control over the entire keymap. Multiple commands can share the same key in different contexts simultaneously, so creating a new binding does not automatically displace existing ones. Supported modifiers include ctrl, shift, alt, and cmd, and base keys span navigation keys, function keys f1–f35, and numpad keys.
Extended Kitty terminal protocol keys are also supported, meaning modern terminals such as Kitty and Ghostty gain access to key combinations that older protocols cannot express.
Expanded Vim Mode
The v0.35.0 release paired the keybinding system with a substantial expansion of Gemini CLI's built-in vim mode. New motions and operations added in this release include:
- Character operations:
X(delete character before cursor),~(toggle case),r(replace single character in place) - Motion targets:
f/F(find character forward/backward on the line),t/T(till character), with fulldf/dtdelete-to-character support - Yank and paste:
y/p/Pwith an unnamed register, enabling clipboard-free copy-paste within the input buffer
CJK and Unicode Input
Beyond vim users, v0.35.0 also improves input handling for East Asian language users. CJK characters and full Unicode scalar values are now handled correctly across terminal input protocols, fixing character rendering issues that had affected Japanese, Chinese, and Korean developers.
Why This Matters
The keybinding system elevates Gemini CLI from a tool with a fixed interaction model to one that adapts to the developer's existing muscle memory. Power users who have spent years customizing their editors can now apply those same preferences to their AI coding sessions.