Skip to content

Instantly share code, notes, and snippets.

@gplusplus314
Last active August 18, 2025 07:13
Show Gist options
  • Save gplusplus314/863afdbe1f5a32be4486521306e9217c to your computer and use it in GitHub Desktop.
Save gplusplus314/863afdbe1f5a32be4486521306e9217c to your computer and use it in GitHub Desktop.
Use the Command key as if it's Control using VSCode Neovim

Use Command as Control in VSCode using the Neovim integration extension

This is a hack to use the Command key as if it's the Control key in macOS within VSCode while using the VSCode-Neovim extension.

Skip to the last heading for a quick copy/paste solution.

Who wants this?

This is a niche requirement for very few people, but I know I'm not alone. Here are some examples of other people in the wild facing a similar problem:

This gist offers a nasty solution, but at least it's a solution!

I've long solved this years ago using terminal emulators, but I really want to try VSCode again to take advantage of some of its strengths. In general, I've found it easier to collaborate with other developers if I use VSCode because of how ubiquitous it is. When working in higher level contexts, especially TypeScript, most projects and tools seem to assume you're already using VSCode, adding more friction to Vim workflows.

VSCode-NeoVim gives me an opportunity for a solid compromise, so long as I can continue using my same muscle memory for the actual Vim motions and controls.

Since searching, I've learned that I'm not alone in this, so I wanted to share what worked for me; maybe it'll work for you, too.

But... why?

There could be a variety of reasons why you may want to do this. Here's my personal explanation that somewhat touches on ergonomics, accessibility, and customization.

There are four modifiers on a keyboard. Desktop operating systems agree on their use cases, but Apple's macOS swaps two modifiers by convention. At an abstract level, all the major OS keyboard idioms have a modifier for in-focus hotkeys (do something in the window that is currently in focus) and global hotkeys. These are commonly the Control and GUI/Super modifiers on most operating systems, including the BSDs, which explains why terminal applications (shells, Vim, etc) expect this modifier for hotkeys. But this creates a problem on Mac: the idiom is backwards.

Generally speaking, macOS reverses the role of the Control and GUI/Super (Command in macOS parlance) modifiers, making Control the least used modifier, lending itself as a popular choice for global keyboard shortcuts, such as switching virtual desktops, tiling window management, launchers, and so on. In fact, Apple's keyboard layout moves the in-focus hotkey modifier to the left thumb for even better ergonomics, at least when compared to Windows and Linux's use of the pinky, assuming a standard keyboard.

But this idiom is broken in VSCode on macOS when trying to use Vim movements/controls. This is especially difficult for people who switch between macOS and other operating systems as well as people who rely on ergonomic keyboards specifically designed for minimizing finger movement. Basically, it conflicts with muscle memory and potentially conflicts with accessibility/ergonomic requirements people may have.

So, let's fix that. The goal is to make the physical location of the in-focus hotkey the same as the rest of the macOS operating system, while simultaneosly making it consistent with your experience on Windows, Linux, and BSD.

But... how?

This effect is achieved in VSCode by exhaustively binding all combinations of Command+<Key> to sending <C-key> to NeoVim. While it's not the most elegant solution, it works right now without depending on major refactoring of various upstream projects.

A cleaner solution would be to have VSCode do something like this internally via an option. But realistically, the time and effort to get that change merged is just not worth it. I, like others, have real work to get done, so "good enough" will just have to do!

So here's how I did it. I cloned the VSCode-Neovim repository and made a simple edit to the keybind code generation script. Replace the contents of scripts/keybinds/index.cjs with:

function cmd2ctrl(key) {
    return key
        .toLowerCase()
        .split("+")
        .map((i) => i
            .split(" ")
            .map(j => (j === "ctrl" ? "cmd" : j))
            .join(" ")
        )
        .join("+");
}

async function main() {
    const path = await import("path");
    const fs = await import("fs");
    const packageJsonPath = path.join(__filename, "../../../package.json");
    const packageJson = require(packageJsonPath);

    const keybindings = [];
    fs.readdirSync(__dirname)
        .filter((f) => /^\d+_.*?\.cjs$/.test(f))
        .sort((a, b) => +a.match(/\d+/)[0] - +b.match(/\d+/)[0])
        .map((m) => keybindings.push(...require(path.join(__dirname, m))));
    packageJson.contributes.keybindings = keybindings
        .map(binding => {
            return Object.assign(binding, {
                key: cmd2ctrl(binding.key)
            })
        });

    fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 4) + "\n");
}

main();

Basically, this just clobbers the ctrl keybinds with cmd on the VSCode side. Nothing special is going on here, by design, keeping it pretty simple.

Then run npm run keybind. It will ovewrite the keybinds in the package.json with our new idiom. Then you can copy/paste from there!

Yes, it's gross, ugly, etc. But it works with the existing state of VSCode, NeoVim, and their integration. Maybe one day I'll be interested in working on a cleaner upstream solution, but that time is not now. I figured this could help some people out there in the short term, so why not share it?

I just want to copy/paste a solution and move on with my life.

I hear you. Please, enjoy the following delicious copy/pasta. To be clear, you'd only use this on macOS and it's unnecessary on any other operating system.

Yank this and put it into your VSCode keybinds.json:

	//
	// With NeoVim, use Cmd as Ctrl on macOS... this is a very, very unfortunate
	// workaround.
	//
	{
		"command": "vscode-neovim.escape",
		"key": "cmd+[",
		"when": "editorTextFocus && neovim.init && editorLangId not in neovim.editorLangIdExclusions"
	},
	{
		"command": "vscode-neovim.escape",
		"key": "cmd+c",
		"when": "editorTextFocus && neovim.init && editorLangId not in neovim.editorLangIdExclusions && neovim.mode == normal && neovim.ctrlKeysNormal.c && !markersNavigationVisible && !parameterHintsVisible && !inReferenceSearchEditor && !referenceSearchVisible && !dirtyDiffVisible && !notebookCellFocused && !findWidgetVisible && !notificationCenterVisible"
	},
	{
		"command": "vscode-neovim.escape",
		"key": "cmd+c",
		"when": "editorTextFocus && neovim.init && editorLangId not in neovim.editorLangIdExclusions && neovim.mode != normal && neovim.ctrlKeysInsert.c"
	},
	{
		"command": "vscode-neovim.escape",
		"key": "escape",
		"when": "editorTextFocus && neovim.init && editorLangId not in neovim.editorLangIdExclusions && neovim.mode == normal && !markersNavigationVisible && !parameterHintsVisible && !inReferenceSearchEditor && !referenceSearchVisible && !dirtyDiffVisible && !notebookCellFocused && !findWidgetVisible && !notificationCenterVisible"
	},
	{
		"command": "vscode-neovim.escape",
		"key": "escape",
		"when": "editorTextFocus && neovim.init && editorLangId not in neovim.editorLangIdExclusions && neovim.mode != normal"
	},
	{
		"command": "vscode-neovim.send",
		"key": "backspace",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<BS>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+backspace",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<S-BS>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "delete",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<Del>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+delete",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<S-Del>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "tab",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<tab>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+tab",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<S-tab>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "down",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<down>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "up",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<up>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "left",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<left>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "right",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<right>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+down",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<S-down>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+up",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<S-up>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+left",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<S-left>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+right",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<S-right>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "home",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<home>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "end",
		"when": "neovim.init && (editorTextFocus && neovim.mode != insert && editorLangId not in neovim.editorLangIdExclusions || neovim.recording)",
		"args": "<end>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+a",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.a && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-a>"
	},
	{
		"command": "vscode-neovim.ctrl-b",
		"key": "cmd+b",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.b && editorLangId not in neovim.editorLangIdExclusions"
	},
	{
		"command": "vscode-neovim.ctrl-d",
		"key": "cmd+d",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.d && editorLangId not in neovim.editorLangIdExclusions"
	},
	{
		"command": "vscode-neovim.ctrl-e",
		"key": "cmd+e",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.e && editorLangId not in neovim.editorLangIdExclusions"
	},
	{
		"command": "vscode-neovim.ctrl-f",
		"key": "cmd+f",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.f && editorLangId not in neovim.editorLangIdExclusions"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+g",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.g && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-g>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+h",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.h && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-h>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+i",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.i && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-i>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+j",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.j && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-j>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+k",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.k && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-k>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+l",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.l && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-l>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+m",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.m && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-m>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+n",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.n && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-n>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+o",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.o && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-o>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+p",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.p && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-p>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+q",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.q && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-q>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+r",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.r && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-r>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+s",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.s && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-s>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+t",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.t && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-t>"
	},
	{
		"command": "vscode-neovim.ctrl-u",
		"key": "cmd+u",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.u && editorLangId not in neovim.editorLangIdExclusions"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+v",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.v && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-v>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+w",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.w && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-w>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+x",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.x && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-x>"
	},
	{
		"command": "vscode-neovim.ctrl-y",
		"key": "cmd+y",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.y && editorLangId not in neovim.editorLangIdExclusions"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+z",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.z && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-z>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+/",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal./ && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-/>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+]",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.] && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-]>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+right",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.right && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-right>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+left",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.left && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-left>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+up",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.up && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-up>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+down",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.down && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-down>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+backspace",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.backspace && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-BS>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+delete",
		"when": "editorTextFocus && neovim.init && neovim.mode != insert && neovim.ctrlKeysNormal.delete && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-Del>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+a",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.a && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-a>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+b",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.b && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-b>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+d",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.d && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-d>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+e",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.e && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-e>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+f",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.f && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-f>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+g",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.g && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-g>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+h",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.h && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-h>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+i",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.i && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-i>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+j",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.j && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-j>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+k",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.k && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-k>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+l",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.l && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-l>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+m",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.m && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-m>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+n",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.n && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-n>"
	},
	{
		"command": "vscode-neovim.escape",
		"key": "cmd+o",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.o && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-o>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+p",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.p && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-p>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+q",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.q && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-q>"
	},
	{
		"command": "vscode-neovim.send-blocking",
		"key": "cmd+r",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.r && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-r>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+s",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.s && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-s>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+t",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.t && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-t>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+u",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.u && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-u>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+v",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.v && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-v>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+w",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.w && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-w>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+x",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.x && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-x>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+y",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.y && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-y>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+z",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.z && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-z>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+/",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert./ && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-/>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+]",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.] && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-]>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+right",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.right && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-right>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+left",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.left && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-left>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+up",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.up && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-up>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+down",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.down && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-down>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+backspace",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.backspace && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-BS>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+delete",
		"when": "editorTextFocus && neovim.init && neovim.mode == insert && neovim.ctrlKeysInsert.delete && editorLangId not in neovim.editorLangIdExclusions",
		"args": "<C-Del>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "tab",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<tab>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "shift+tab",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<S-tab>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "down",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<down>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "up",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<up>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "shift+down",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<S-down>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "shift+up",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<S-up>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+h",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-h>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+w",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-w>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+u",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-u>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+n",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-n>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+p",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-p>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+l",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-l>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+g",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-g>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+t",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-t>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+m",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-m>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+j",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-j>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+up",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-up>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+down",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-down>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r 0",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>0"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r 1",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>1"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r 2",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>2"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r 3",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>3"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r 4",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>4"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r 5",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>5"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r 6",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>6"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r 7",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>7"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r 8",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>8"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r 9",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>9"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+0",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>)"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+1",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>!"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+2",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>@"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+3",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>#"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+4",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>$"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+5",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>%"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+6",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>^"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+7",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>&"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+8",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>*"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+9",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>("
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+'",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>\""
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+=",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>="
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+-",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>_"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+=",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>+"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+;",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>:"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+,",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+.",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+/",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>?"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+`",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>~"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+[",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>{"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r shift+]",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>}"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+a",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-a>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+b",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-b>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+c",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-c>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+d",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-d>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+e",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-e>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+f",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-f>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+g",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-g>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+h",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-h>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+i",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-i>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+j",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-j>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+k",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-k>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+l",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-l>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+m",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-m>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+n",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-n>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+o",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-o>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+p",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-p>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+q",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-q>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+r",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-r>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+s",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-s>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+t",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-t>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+u",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-u>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+v",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-v>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+w",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-w>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+x",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-x>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+y",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-y>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+z",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-z>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r cmd+]",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r><C-]>"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r /",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>/"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r -",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>-"
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r .",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>."
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+r =",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-r>="
	},
	{
		"command": "vscode-neovim.send-cmdline",
		"key": "cmd+\\ e",
		"when": "neovim.init && neovim.mode == cmdline",
		"args": "<C-\\>e"
	},
	{
		"key": "j",
		"command": "list.focusDown",
		"when": "listFocus && !inputFocus"
	},
	{
		"key": "k",
		"command": "list.focusUp",
		"when": "listFocus && !inputFocus"
	},
	{
		"key": "h",
		"command": "list.collapse",
		"when": "listFocus && !inputFocus"
	},
	{
		"key": "l",
		"command": "list.select",
		"when": "listFocus && !inputFocus"
	},
	{
		"key": "enter",
		"command": "list.select",
		"when": "listFocus && !inputFocus && !notebookCellListFocused"
	},
	{
		"key": "g g",
		"command": "list.focusFirst",
		"when": "listFocus && !inputFocus"
	},
	{
		"key": "shift+g",
		"command": "list.focusLast",
		"when": "listFocus && !inputFocus"
	},
	{
		"key": "o",
		"command": "list.toggleExpand",
		"when": "listFocus && !inputFocus"
	},
	{
		"key": "cmd+u",
		"command": "list.focusPageUp",
		"when": "listFocus && !inputFocus"
	},
	{
		"key": "cmd+d",
		"command": "list.focusPageDown",
		"when": "listFocus && !inputFocus"
	},
	{
		"key": "/",
		"command": "list.find",
		"when": "listFocus && listSupportsFind && !inputFocus"
	},
	{
		"key": "enter",
		"command": "list.closeFind",
		"when": "listFocus && treeFindOpen && inputFocus"
	},
	{
		"key": "r",
		"command": "renameFile",
		"when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
	},
	{
		"key": "d",
		"command": "deleteFile",
		"when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
	},
	{
		"key": "y",
		"command": "filesExplorer.copy",
		"when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
	},
	{
		"key": "x",
		"command": "filesExplorer.cut",
		"when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
	},
	{
		"key": "p",
		"command": "filesExplorer.paste",
		"when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
	},
	{
		"key": "v",
		"command": "explorer.openToSide",
		"when": "explorerViewletFocus && explorerViewletVisible && !inputFocus"
	},
	{
		"key": "a",
		"command": "explorer.newFile",
		"when": "filesExplorerFocus && !inputFocus"
	},
	{
		"key": "shift+a",
		"command": "explorer.newFolder",
		"when": "filesExplorerFocus && !inputFocus"
	},
	{
		"key": "shift+r",
		"command": "workbench.files.action.refreshFilesExplorer",
		"when": "filesExplorerFocus && !inputFocus"
	},
	{
		"key": "z o",
		"command": "list.expand",
		"when": "!editorTextFocus && !inputFocus"
	},
	{
		"key": "z shift+o",
		"command": "list.expand",
		"when": "!editorTextFocus && !inputFocus"
	},
	{
		"key": "z c",
		"command": "list.collapse",
		"when": "!editorTextFocus && !inputFocus"
	},
	{
		"key": "z shift+c",
		"command": "list.collapseAllToFocus",
		"when": "!editorTextFocus && !inputFocus"
	},
	{
		"key": "z a",
		"command": "list.toggleExpand",
		"when": "!editorTextFocus && !inputFocus"
	},
	{
		"key": "z shift+a",
		"command": "list.toggleExpand",
		"when": "!editorTextFocus && !inputFocus"
	},
	{
		"key": "z m",
		"command": "list.collapseAll",
		"when": "!editorTextFocus && !inputFocus"
	},
	{
		"key": "z shift+m",
		"command": "list.collapseAll",
		"when": "!editorTextFocus && !inputFocus"
	},
	{
		"key": "tab",
		"command": "togglePeekWidgetFocus",
		"when": "inReferenceSearchEditor && neovim.mode == normal || referenceSearchVisible"
	},
	{
		"key": "cmd+n",
		"command": "list.focusDown",
		"when": "inReferenceSearchEditor && neovim.mode == normal"
	},
	{
		"key": "cmd+p",
		"command": "list.focusUp",
		"when": "inReferenceSearchEditor && neovim.mode == normal"
	},
	{
		"command": "list.focusDown",
		"key": "cmd+n",
		"when": "listFocus && !inputFocus"
	},
	{
		"command": "list.focusUp",
		"key": "cmd+p",
		"when": "listFocus && !inputFocus"
	},
	{
		"command": "showNextParameterHint",
		"key": "cmd+n",
		"when": "editorTextFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
	},
	{
		"command": "showPrevParameterHint",
		"key": "cmd+p",
		"when": "editorTextFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
	},
	{
		"key": "cmd+n",
		"command": "selectNextSuggestion",
		"when": "textInputFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible"
	},
	{
		"key": "cmd+p",
		"command": "selectPrevSuggestion",
		"when": "textInputFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible"
	},
	{
		"command": "workbench.action.quickOpenSelectNext",
		"key": "cmd+n",
		"when": "inQuickOpen && neovim.mode != cmdline"
	},
	{
		"command": "workbench.action.quickOpenSelectPrevious",
		"key": "cmd+p",
		"when": "inQuickOpen && neovim.mode != cmdline"
	},
	{
		"key": "cmd+n",
		"command": "selectNextCodeAction",
		"when": "codeActionMenuVisible"
	},
	{
		"key": "cmd+p",
		"command": "selectPrevCodeAction",
		"when": "codeActionMenuVisible"
	},
	{
		"key": "cmd+w q",
		"command": "workbench.action.closeActiveEditor",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus && !filesExplorerFocus && !searchViewletFocus"
	},
	{
		"key": "cmd+escape",
		"command": "workbench.action.focusActiveEditorGroup",
		"when": "terminalFocus"
	},
	{
		"command": "editor.action.showHover",
		"key": "shift+k",
		"when": "neovim.init && neovim.mode == normal && editorTextFocus && editorHoverVisible"
	},
	{
		"command": "editor.action.pageDownHover",
		"key": "cmd+f",
		"when": "editorHoverFocused"
	},
	{
		"command": "editor.action.pageUpHover",
		"key": "cmd+b",
		"when": "editorHoverFocused"
	},
	{
		"command": "editor.action.pageDownHover",
		"key": "cmd+d",
		"when": "editorHoverFocused"
	},
	{
		"command": "editor.action.pageUpHover",
		"key": "cmd+u",
		"when": "editorHoverFocused"
	},
	{
		"command": "editor.action.scrollDownHover",
		"key": "j",
		"when": "editorHoverFocused"
	},
	{
		"command": "editor.action.scrollUpHover",
		"key": "k",
		"when": "editorHoverFocused"
	},
	{
		"command": "editor.action.scrollLeftHover",
		"key": "h",
		"when": "editorHoverFocused"
	},
	{
		"command": "editor.action.scrollRightHover",
		"key": "l",
		"when": "editorHoverFocused"
	},
	{
		"command": "editor.action.goToTopHover",
		"key": "g g",
		"when": "editorHoverFocused"
	},
	{
		"command": "editor.action.goToBottomHover",
		"key": "shift+g",
		"when": "editorHoverFocused"
	},
	{
		"command": "focusNextRenameSuggestion",
		"key": "cmd+n",
		"when": "renameInputVisible"
	},
	{
		"command": "focusPreviousRenameSuggestion",
		"key": "cmd+p",
		"when": "renameInputVisible"
	},
	{
		"command": "-workbench.action.switchWindow",
		"key": "cmd+w"
	},
	{
		"command": "workbench.action.focusNextGroup",
		"key": "cmd+w cmd+w",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus && !(filesExplorerFocus || inSearchEditor || searchViewletFocus || replaceInputBoxFocus)"
	},
	{
		"command": "workbench.action.navigateUp",
		"key": "cmd+w up",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.navigateUp",
		"key": "cmd+w k",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.navigateDown",
		"key": "cmd+w down",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.navigateDown",
		"key": "cmd+w j",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.navigateLeft",
		"key": "cmd+w left",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.navigateLeft",
		"key": "cmd+w h",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.navigateRight",
		"key": "cmd+w right",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.navigateRight",
		"key": "cmd+w l",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.evenEditorWidths",
		"key": "cmd+w =",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.toggleEditorWidths",
		"key": "cmd+w shift+-",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.increaseViewWidth",
		"key": "cmd+w shift+.",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.decreaseViewWidth",
		"key": "cmd+w shift+,",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.increaseViewHeight",
		"key": "cmd+w shift+=",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.decreaseViewHeight",
		"key": "cmd+w -",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.splitEditorDown",
		"key": "cmd+w s",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "workbench.action.splitEditorRight",
		"key": "cmd+w v",
		"when": "!editorTextFocus && neovim.mode != 'cmdline' && !terminalFocus"
	},
	{
		"command": "vscode-neovim.send",
		"key": "a",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "a"
	},
	{
		"command": "vscode-neovim.send",
		"key": "b",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "b"
	},
	{
		"command": "vscode-neovim.send",
		"key": "c",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "c"
	},
	{
		"command": "vscode-neovim.send",
		"key": "d",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "d"
	},
	{
		"command": "vscode-neovim.send",
		"key": "e",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "e"
	},
	{
		"command": "vscode-neovim.send",
		"key": "f",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "f"
	},
	{
		"command": "vscode-neovim.send",
		"key": "g",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "g"
	},
	{
		"command": "vscode-neovim.send",
		"key": "h",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "h"
	},
	{
		"command": "vscode-neovim.send",
		"key": "i",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "i"
	},
	{
		"command": "vscode-neovim.send",
		"key": "j",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "j"
	},
	{
		"command": "vscode-neovim.send",
		"key": "k",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "k"
	},
	{
		"command": "vscode-neovim.send",
		"key": "l",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "l"
	},
	{
		"command": "vscode-neovim.send",
		"key": "m",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "m"
	},
	{
		"command": "vscode-neovim.send",
		"key": "n",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "n"
	},
	{
		"command": "vscode-neovim.send",
		"key": "o",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "o"
	},
	{
		"command": "vscode-neovim.send",
		"key": "p",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "p"
	},
	{
		"command": "vscode-neovim.send",
		"key": "q",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "q"
	},
	{
		"command": "vscode-neovim.send",
		"key": "r",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "r"
	},
	{
		"command": "vscode-neovim.send",
		"key": "s",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "s"
	},
	{
		"command": "vscode-neovim.send",
		"key": "t",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "t"
	},
	{
		"command": "vscode-neovim.send",
		"key": "u",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "u"
	},
	{
		"command": "vscode-neovim.send",
		"key": "v",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "v"
	},
	{
		"command": "vscode-neovim.send",
		"key": "w",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "w"
	},
	{
		"command": "vscode-neovim.send",
		"key": "x",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "x"
	},
	{
		"command": "vscode-neovim.send",
		"key": "y",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "y"
	},
	{
		"command": "vscode-neovim.send",
		"key": "z",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "z"
	},
	{
		"command": "vscode-neovim.send",
		"key": "0",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "0"
	},
	{
		"command": "vscode-neovim.send",
		"key": "1",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "1"
	},
	{
		"command": "vscode-neovim.send",
		"key": "2",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "2"
	},
	{
		"command": "vscode-neovim.send",
		"key": "3",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "3"
	},
	{
		"command": "vscode-neovim.send",
		"key": "4",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "4"
	},
	{
		"command": "vscode-neovim.send",
		"key": "5",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "5"
	},
	{
		"command": "vscode-neovim.send",
		"key": "6",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "6"
	},
	{
		"command": "vscode-neovim.send",
		"key": "7",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "7"
	},
	{
		"command": "vscode-neovim.send",
		"key": "8",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "8"
	},
	{
		"command": "vscode-neovim.send",
		"key": "9",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "9"
	},
	{
		"command": "vscode-neovim.send",
		"key": "'",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "'"
	},
	{
		"command": "vscode-neovim.send",
		"key": ";",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": ";"
	},
	{
		"command": "vscode-neovim.send",
		"key": "/",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "/"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+'",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "\""
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+;",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": ":"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+4",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "$"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+5",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "%"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+g",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "G"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+v",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "V"
	},
	{
		"command": "vscode-neovim.send",
		"key": "shift+y",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "Y"
	},
	{
		"command": "vscode-neovim.send",
		"key": "cmd+v",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "<C-v>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "backspace",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "<BS>"
	},
	{
		"command": "vscode-neovim.send",
		"key": "delete",
		"when": "neovim.init && neovim.mode != insert && editorTextFocus && focusedView == workbench.panel.output",
		"args": "<Del>"
	}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment