Skip to content

Vi mode (READ: Allow selection keys to be rebound to different keys) #11868

Open

Description

@sapphire41

Description of the new feature/enhancement

This issue suggests implementing a "Vi mode" similar to the very convenient one implemented by Alacritty, where the user can
move the cursor around, select and copy text using the keyboard alone in a fashion familiar to most programmers and power users;

  • The user presses a predefined keyboard shortcut to enter Vi mode
  • Once in Vi mode, the cursor is movable in the current terminal buffer using Vi motions (h j k l)
  • 'V' enters visual mode, where text can be selected and copied ('y')
  • '/' and '?' enter search mode where text can be searched and then copied

Activity

  1. added
    Issue-FeatureComplex enough to require an in depth planning process and actual budgeted, scheduled work.
    on Dec 2, 2021
  2. ghost added
    Needs-Tag-FixDoesn't match tag requirements
    on Dec 2, 2021
  3. ghost added
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    on Dec 2, 2021
  4. zadjii-msft commented on Dec 2, 2021

    @zadjii-msft
    Member

    OH HEY LOOK GUYS, SOMEONE WHO WANTED TO REBIND THE MARK MODE KEYBINDINGS

    Sorry, that's not directed at you, that's directed at the team. We've been having this discussion for a while now. Dustin L. Howett (@DHowett) Carlos Zamora (@carlos-zamora)

    linking to #10824, #715, #2840, #5804

  5. added
    Area-SettingsIssues related to settings and customizability, for console or terminal
    Needs-DiscussionSomething that requires a team discussion before we can proceed
    on Dec 2, 2021
  6. ghost removed
    Needs-Tag-FixDoesn't match tag requirements
    on Dec 2, 2021
  7. zadjii-msft commented on Dec 8, 2021

    @zadjii-msft
    Member

    Also linking this to #9301, #11084, #9301 and MOST IMPORTANTLY #5790.

    We discussed today and had ideas for:

    • different keymaps
    • keybindings that can switch between those keymaps
    • allowing the selection keybindings to get rebound
    • minimizing the appearance of all the selection keybindings in the SUI. Either use the SUI to pick between "Default, vi, emacs" selection bindings, or use the json to edit manually.

    I'm gonna leave this open to track the third bullet point, because we agree we're open to the idea of rebinding the keys, so long as the SUI impact is relatively low (it's something like 12-30 actions in the SUI, which is a lot).

  8. removed
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    Needs-DiscussionSomething that requires a team discussion before we can proceed
    on Dec 8, 2021
  9. sisrfeng commented on Feb 21, 2022

    @sisrfeng

    :term of neovim is easy to use, and I use neovim-remote and abduco, making the register easier to use (do not need to specify a register for most time)

    I do not use tmux anymore

  10. changed the title [-]Vi mode[/-] [+]Vi mode (READ: Allow selection keys to be rebound to different keys)[/+] on Aug 17, 2023
  11. xuejiaW commented on Jan 10, 2024

    @xuejiaW

    +1
    I have tried to use Poweroys keyboard manager + markmode to work around this feature, something like remapping "ctrl+h" to "arrow left"
    image

    but no luck, once i press "ctrl+h", the mark mode will exit, so it not works

  12. brentksusco commented on Sep 30, 2025

    @brentksusco

    We discussed today and had ideas for:

    • different keymaps
    • keybindings that can switch between those keymaps
    • allowing the selection keybindings to get rebound
    • minimizing the appearance of all the selection keybindings in the SUI. Either use the SUI to pick between "Default, vi, emacs" selection bindings, or use the json to edit manually.

    I'm gonna leave this open to track the third bullet point, because we agree we're open to the idea of rebinding the keys, so long as the SUI impact is relatively low (it's something like 12-30 actions in the SUI, which is a lot).

    I know this is pretty old, but this ability would be highly appreciated. Especially options 3 or 4.

  13. webavant commented on Mar 31, 2026

    @webavant

    keyboard-select mode in rxvt behaves like keyboard selection in mark-mode, only with the ability to change the keybindings for manipulating the range of selection as char-length start/stop, or row/col start/stop. It is the primary feature keeping me from switching to wt.

  14. Insecure88 commented on Oct 13, 2026

    @Insecure88

    +1

    Dying for this feature. I like windows terminal and don't want to switch to wezterm or live in a terminal multiplexer just to have an easier time navigating the buffer and selecting text. I'd like a proper vi mode or at least the ability to set keybinds scoped to mark mode.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-SettingsIssues related to settings and customizability, for console or terminalIssue-FeatureComplex enough to require an in depth planning process and actual budgeted, scheduled work.Product-TerminalThe new Windows Terminal.

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions