[FEATURE] Feature Request: Add Vi/Vim Mode to Prompt Input Area
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Feature Request
Add Vi/Vim keybindings and modal editing support to the Claude Code prompt/input
area where users type their messages.
And yes I had Claude Code write this for me ;-)
Motivation
Many developers use Vi/Vim keybindings throughout their workflow (terminal, editor,
browser extensions) and would benefit from having the same efficient text editing
capabilities in Claude Code's prompt area. Currently, users must switch between
Vi-style editing in their editor/terminal and standard editing in the Claude Code
prompt, which breaks workflow consistency.
I have been using vi/vim/neovim for over 45 years; my fingers just know what to do, in the question area j/k do work.
Proposed Solution
Proposed Solution
Implement a Vi/Vim mode for the prompt input that includes:
- Normal mode: Navigation with h/j/k/l, w/b for word movement, 0/$ for
line start/end
- Insert mode: Standard text input (entered via i, a, o, etc.)
- Visual mode: Text selection with v
- Command mode: Delete (d), change (c), yank (y) operations
- Mode indicator: Visual feedback showing current mode (NORMAL, INSERT, VISUAL)
The feature should be:
- Optional (enabled via configuration/settings)
- Toggleable (users can switch it on/off as needed)
- Non-breaking (default behavior remains unchanged for existing users)
Similar Implementations
This feature exists in many developer tools:
- VS Code: Official Vim extension
- JetBrains IDEs: IdeaVim plugin
- Firefox/Chrome: Vimium, Tridactyl extensions
- Jupyter notebooks: Vi mode in cell editing
- Zsh/Bash:
set -o vifor shell prompt
Benefits
- Improved editing efficiency for Vi/Vim users
- Reduced context switching between tools
- Better accessibility for users with Vi muscle memory
- Competitive feature parity with other AI coding assistants
Configuration Example
Potential settings.json configuration:
{
"prompt.viMode": true,
"prompt.viModeIndicator": true
}
Or command-line flag:
claude-code --vi-mode
Thank you for considering this feature request!
Alternative Solutions
_No response_
Priority
Medium - Would be very helpful
Feature Category
CLI commands and flags
Use Case Example
As I enter data into the prompt, I often want to go back and edit a bit. If I have a big prompt to edit, I often write it to a temp file (I frequently use foo) and then copy and paste it into the prompt area. It would be nice if the prompt area had an easy way to edit, as often I am going to write a short prompt, and it just keeps getting longer and longer.
Additional Context
_No response_
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗