Document default Emacs and Vi keybindings - #1119
Closed
Semak12345 wants to merge 1 commit into
Closed
Semak12345 wants to merge 1 commit into
Semak12345 wants to merge 1 commit into
Conversation
Collaborator
|
Nice, this one was on my mind for a long time, thanks for picking it up. @Semak12345
A |
kronberger-droid
added a commit
to kronberger-droid/reedline
that referenced
this pull request
Aug 26, 2026
Structured around the four `add_common_*` sets rather than one table per mode, since what separates the modes is which sets they compose and which single keys they override. Filing the shared bindings under emacs instead leaves vi insert described by subtraction. Closes nushell#350. Supersedes nushell#1119, which predates helix.
Collaborator
|
Superseded by #1197 |
kronberger-droid
added a commit
to kronberger-droid/reedline
that referenced
this pull request
Sep 8, 2026
Structured around the four `add_common_*` sets rather than one table per mode, since what separates the modes is which sets they compose and which single keys they override. Filing the shared bindings under emacs instead leaves vi insert described by subtraction. Every row was read back off the tables and the modal parsers rather than off vim's and helix's own docs, so the descriptions are reedline's behaviour where the two diverge: vi `I` is `MoveToLineStart`, not vim's first non-blank; `Ctrl-d` deletes a grapheme unless the buffer is empty; a counted helix `g` is dropped rather than acting as `gg`. Closes nushell#350. Supersedes nushell#1119, which predates helix.
kronberger-droid
added a commit
that referenced
this pull request
Sep 11, 2026
Structured around the four `add_common_*` sets rather than one table per mode, since what separates the modes is which sets they compose and which single keys they override. Filing the shared bindings under emacs instead leaves vi insert described by subtraction. Every row was read back off the tables and the modal parsers rather than off vim's and helix's own docs, so the descriptions are reedline's behaviour where the two diverge: vi `I` is `MoveToLineStart`, not vim's first non-blank; `Ctrl-d` deletes a grapheme unless the buffer is empty; a counted helix `g` is dropped rather than acting as `gg`. Closes #350. Supersedes #1119, which predates helix.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #350.
Adds a user-facing reference for the default Emacs and Vi keybindings, including movement, editing, selection, control, Vi motions, operators, and text objects. Links the new guide from the README outline.
Before
Users had to inspect the keybinding constructors and Vi parser to discover the defaults.
After
The defaults are collected in tables in KEYBINDINGS.md, with notes about terminal-specific and feature-gated bindings.
Additional notes
Documentation-only change. Validated with markdownlint-cli2 and git diff --check.