Skip to content
| Marketplace
Sign in
Visual Studio Code>Keymaps>LeaderModeNew to Visual Studio Code? Get it now.
LeaderMode

LeaderMode

Michael Griscom

|
2,450 installs
| (2) | Free
A standalone leader-key mode for Visual Studio Code
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info


LeaderMode

A standalone leader-key mode for Visual Studio Code

Download Extension Build Status

LeaderMode provides a mechanism for unifying VSCode keybindings into a single entry point, similar to the leader key mechanism in Vim, combined with a visual interface similar to which-key. This allows for more mnemonic and discoverable shortcuts without requiring a modal editing environment. The behavior, along with some keybindings, were inspired by the Spacemacs distribution.

Usage Animation

Features

LeaderMode allows for the use of a tree of keybindings instead of (or in addition to) normal shortcuts, such as Ctrl+Shift+J. This allows for more mnemonic and semantic keybindings, for example e-r to create a new editor to the right, e-l to create an editor to the left.

Upon pressing the leader key, a key guide is displayed in the status bar of the VSCode window as an interactive cheat-sheet of the tree of keybindings. Key Guide

LeaderMode can be exited through the Escape key, or by pressing a non-special character not present in the current tree layer (e.g., typing z in the example below). When combined with a utility like sharpkeys you can change the apps/menu key of your keyboard to invoke a normally unused key (such as F14), then in VSCode map that key to leadermode.enter in order to more efficiently enter commands.

Extension Settings

Commands

Customizable via keybindings.json:

  • leadermode.enter: Enters leader mode. Default: Ctrl+L
  • leadermode.exit: Exits leader mode. Default: Escape

Configuration

Customizable via settings.json:

  • leadermode.showKeyGuide: Value indicating whether to show the key guide. Allowable values are always and never. Default: always
  • leadermode.keybindings: An array of case-sensitive keybindings (or key sequence labels) of the form
{
    "keySequence": string[],
    "label": string, // optional. If not present, 'command' is used
    "command": string, // optional. If not present, entry is treated as just a label
    "args": any[] // optional. Arguments to provide to the command upon execution
}

Context

  • leadermode.isActive indicates whether the mode is currently active.

Known Issues and Limitations

  • Due to a limitation that keypress messages are only forwarded if there's an active editor group, currently leader mode is only activated if there's an active editor. One potential workaround is to trigger the command workbench.action.focusActiveEditorGroup prior to invoking leader mode, however this can result in non-obvious behavior.
  • Special characters (such as tab) are not currently supported as part of a key sequence
  • LeaderMode should not be used in combination with Vim extensions due to a VSCode limitation.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft