VSCodeVim / VSCodeVim/Vim

Add display of available keybindings following incomplete command

Open
#4,636 4 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/not-vim-core kind/feature
Dominant language
TypeScript
Stars
15.2k
Forks
1.5k
Avg merge
3d 18h
Merged PRs (30d)
6

Description

Is your feature request related to a problem? Please describe.
I'd like to be able to discover keybindings easily.

Describe the solution you'd like
On pressing or any key that VSCodeVim could understand as a multi-key command , it would display a menu

  • Triggering of the menu display:

    • The menu should display after pressing a key for an incomplete command. e.g. or d/c/y with no selection.
    • It could display after a configurable delay so that it does not interrupt the user when they know what command they are going to type.
  • Location of the menu:

    • Perhaps in the usual top-middle location for VS Code completions (like CTRL+SHIFT+P)
    • Perhaps at a configurable location by the users.
      (Full width of current editor, at the bottom of the current editor pane, or full width of VS Code at the bottom of screen would be my preference)
       
  • Ordering of the menu:
    The keybinding should be displayed in alphabetical order with all non-alphabet characters listed before the alphabetic ones.

  • Content and arrangement.
    The menu should display completions for

    • VSCodeVim provided keybindings
    • User configured VSCodeVim bindings
    • and VS Code built-in commands (if that's possible)
      It could distinguish between these by color (as well as some other indicator for color-blind users).

    A distinction could be made between workspace and user configured bindings.

Describe alternatives you've considered
As far as I am aware there is no easy way to get a (combined) listing of all VS Code Vim default and user / workspace configured VIM keybindings (let-alone VS Code built-ins).

Additional context
See a screenshots from the emacs packabe which-key for an example of what the contents of the menu might look like.

I'm a spacemacs users, which is why I'm referencing an emacs package. An equivalent VIM package would be http://liuchengxu.org/vim-which-key/d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by tracing how VSCodeVim handles incomplete multi-key commands and how it exposes configured keybindings, then investigate the VS Code APIs for displaying a completion menu. Done means a scoped design and implementation covering the requested triggers, ordering, and binding sources.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
developer-experience, devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.