How to find command by pressing keybinding in VSCode
Asked Answered
C

2

28

I'm looking for a way for VS Code to tell me the command name for a keybinding.

In Emacs, this functionality is available under describe-key (C-h k).

For example, in VS Code A maps to editor.action.selectAll. So ideally I'd press a keyboard shortcut, then A, then VS Code would tell me editor.action.selectAll.

As a partial solution, I can open my keybindings.json and search for A, but this doesn't work for extensions. (My particular use case is figuring out what the Vim o command is called so I can remap it.)

Consolation answered 12/9, 2018 at 20:44 Comment(2)
Thank you for mentioning "C-h k", that's how I found this question ;-)Dragonfly
I'm removing the "emacs" tag, since this is a question about Microsoft's VS Code editor. The OP mentions Emacs as a point of comparison only.Contiguity
C
17

You can find the command associated with a key binding by typing the keybinding into the Keyboard Shortcuts search box:

keyboard shortcuts

Unfortunately, per the source code, the vim extension doesn't use this mechanism to bind the o key.

Fortunately, it does let you rebind the keys in settings. First, open settings (F1 Preferences: Open Settings), then add (to bind i, for example):

"vim.normalModeKeyBindingsNonRecursive": [
    "before": ["i"],
    "after": ["o"]
],

If you have the new settings UI, you might need to search for vim.normalModeKeyBindingsNonRecursive first, and then click Edit in settings.json.

Codie answered 18/9, 2018 at 21:38 Comment(1)
Also see #46288061 for an improvement to searching for bound keystrokes and commands.Gilus
C
9

As of the September 2018 release, VSCode can do this from the keyboard shortcuts window.

Screenshot of keyboard shortcuts pane with recording keys active

From the keyboard shortcuts window (cmd+k cmd+s), type cmd+option+k or click the keyboard icon on the right.

Kudos to this comment linking to this approach as an answer to another question.

Consolation answered 31/10, 2018 at 17:45 Comment(3)
This is a duplicate answer - see my comment above.Gilus
Sorry, I wanted to have this as an answer and didn't know the etiquette in this case. I can remove this answer though I do feel the updated screenshot provides value. Thanks for your comments.Consolation
I would do two things in your answer: explicitly reference the comment above and then upvote that actual answer on the commented link since you did find it helpful. Neither of these is required of course, I just think it is the nicest way to handle it.Gilus

© 2022 - 2024 — McMap. All rights reserved.