Skip to content

Conversation

Waishnav
Copy link

Fixes #104, #3115, and #155

This is a WIP PR to add a Vim keybinding mode across the Codex CLI.
I’ll add more details later tomorrow, about my approach to implementing Vim motions in the input box, as well as in the transcript mode for scrolling through the transcript/context.

P.S. It’s late night here, so I’m heading to bed now.

Implement 'w', 'b', and 'e' word motions in Vim mode and add is_vim_normal_mode() helper. Add unit tests covering visual-mode word motions and normal-mode detection. Rationale: improve Vim editing experience in the composer.
Add composer_in_vim_normal_mode() that delegates to the composer. Enables higher-level UI to gate behavior based on Vim normal mode.
Delegate composer_in_vim_normal_mode() through ChatWidget so top-level UI can check composer Vim state.
Wire the 't' key to open the transcript overlay when the composer is in Vim normal mode. Improves discoverability of transcript while using Vim bindings.
… other handlers)

Unify page semantics so Ctrl-D/Ctrl-U perform full-page scrolling. Remove Ctrl-F/Ctrl-B and Ctrl-E/Ctrl-Y handlers and hints. Update pager key hints accordingly. Rationale: simplify and align pager behaviour for Vim mode; note this may affect users relying on previous handlers.
@Waishnav Waishnav changed the title Feat/vim keybindings with vim motions feat:vim keybindings throughout codex cli Oct 11, 2025
@Waishnav Waishnav changed the title feat:vim keybindings throughout codex cli feat:vim motion throughout codex cli Oct 11, 2025
@Waishnav Waishnav changed the title feat:vim motion throughout codex cli feat: vim motion throughout codex cli Oct 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

vim-like input mode

2 participants