Gemini CLI: Customizable Keyboard Shortcuts and Vim Mode Expansion

Gemini CLI

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.


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 full df/dt delete-to-character support
  • Yank and paste: y/p/P with 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.

Gemini CLI: Custom Keybindings and Expanded Vim Mode | Yet Another Changelog