├── .gitignore ├── .vscode └── launch.json ├── .vscodeignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── bindings-screenshot.png ├── bindings-screenshot.xcf ├── icon.png ├── icon.xcf ├── package.json ├── publishing.txt ├── reference ├── README.md ├── default-linux-keybindings.json └── default-windows-keybindings.json └── vsc-extension-quickstart.md /.gitignore: -------------------------------------------------------------------------------- 1 | # .gitignore 2 | 3 | *.vsix 4 | *.zip 5 | 6 | # EOF 7 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that launches the extension inside a new window 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | { 6 | "version": "0.2.0", 7 | "configurations": [ 8 | { 9 | "name": "Extension", 10 | "type": "extensionHost", 11 | "request": "launch", 12 | "runtimeExecutable": "${execPath}", 13 | "args": [ 14 | "--extensionDevelopmentPath=${workspaceFolder}" 15 | ] 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | .vscode-test/** 3 | .gitignore 4 | vsc-extension-quickstart.md 5 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## 0.0.10 4 | 5 | - Update to match defaults for, and require, VSCode 1.78. 6 | 7 | ## 0.0.9 8 | 9 | - Update to match defaults for, and require, VSCode 1.70. 10 | 11 | ## 0.0.8 12 | 13 | - Update to match defaults for, and require, VSCode 1.61. 14 | 15 | ## 0.0.7 16 | 17 | - Update to match defaults for, and require, VSCode 1.52. 18 | 19 | ## 0.0.6 20 | 21 | - Update to match defaults for, and require, VSCode 1.47. 22 | 23 | ## 0.0.5 24 | 25 | - Update to match defaults for VSCode 1.45.1. 26 | - Require VSCode 1.45.1 or later due to changed command names. 27 | - The update resolves github issue #1, in which ctrl+tab was broken due 28 | to changed names. 29 | 30 | ## 0.0.4 31 | 32 | - Update to match defaults for VSCode 1.41.1. 33 | - Require VSCode 1.41.0 or later due to some changed command names. 34 | 35 | ## 0.0.3 36 | 37 | - Rename extension to "Windows Default Keybindings" 38 | (was "default-keys-windows"). 39 | - Clarify a few things in the README. 40 | 41 | ## 0.0.2 42 | 43 | - Initial release 44 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Scott McPeak. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This extension provides the default key bindings for Windows 2 | on any platform. 3 | 4 | Currently, these are the defaults for VSCode 1.78.2. 5 | 6 | This is useful if you want to run VSCode on another platform 7 | but continue to use the bindings that are the defaults on 8 | Windows (e.g., 9 | [here](https://stackoverflow.com/questions/52726849/how-to-transfer-vscode-key-mapping-on-windows-to-ubuntu) 10 | and 11 | [here](https://stackoverflow.com/questions/45840945/vscode-importing-keyboard-shortcuts)). 12 | 13 | This extension does not remove any existing bindings. On 14 | Windows, that means you have everything bound twice. On 15 | other platforms, you have that platform's default bindings 16 | plus the Windows ones. The bindings in this extension take 17 | precedence over the defaults provided by VSCode. 18 | 19 | Example screenshot running on Linux: 20 | 21 | ![Screenshot of bindings](bindings-screenshot.png) 22 | 23 | ## Installation 24 | 25 | From within VSCode, go to extensions (Ctrl+Shift+X), 26 | search for "Windows Default Keybindings", click on it, then 27 | click on Install. The new bindings should be active immediately. 28 | 29 | Alternatively, install it from the 30 | [Marketplace page](https://marketplace.visualstudio.com/items?itemName=smcpeak.default-keys-windows), 31 | or download the VSIX file from the 32 | [Github releases page](https://github.com/smcpeak/vscode-default-keys-windows/releases) 33 | and then use "Install from VSIX..." menu option from the "..." menu in 34 | the Extensions page. 35 | 36 | ## Some problematic keybindings and workarounds 37 | 38 | The basic goal of this extension is to allow VSCode users who are accustomed to the keybindings on Windows to use it on other platforms with the same keybindings. However, sometimes the bindings conflict with something else on the other OS, or don't work for some other reason. 39 | 40 | In this section I have collected together some workarounds, but be aware that I haven't personally tested all of them. 41 | 42 | ### Ctrl + Alt + Up/Down/Right 43 | 44 | On Windows, Ctrl+Alt+Up and Ctrl+Alt+Down enter multi-column select mode, and 45 | Ctrl+Alt+Right splits the editor pane vertically. On some Linux distributions, 46 | the window manager by default intercepts these key combinations. 47 | 48 | On Ubuntu 22, to disable the offending window manager bindings and allow VSCode 49 | to see them, run at a shell: 50 | 51 | ``` 52 | $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left "['']" 53 | $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-right "['']" 54 | $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-down "['']" 55 | $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-up "['']" 56 | ``` 57 | 58 | On Mint 20, run: 59 | 60 | ``` 61 | $ gsettings set org.cinnamon.desktop.keybindings.wm move-to-workspace-left "['']" 62 | $ gsettings set org.cinnamon.desktop.keybindings.wm move-to-workspace-right "['']" 63 | $ gsettings set org.cinnamon.desktop.keybindings.wm move-to-workspace-down "['']" 64 | $ gsettings set org.cinnamon.desktop.keybindings.wm move-to-workspace-up "['']" 65 | ``` 66 | 67 | ### Ctrl + Left/Right on MacOS 68 | 69 | On Windows, Ctrl + Left/Right moves the cursor by one word to the left or right, 70 | including in the Terminal window. However, reportedly on MacOS, these key bindings 71 | do not work in the Terminal. Insert the following snippet into `keybindings.json` 72 | (Ctrl+Shift+P to get the Command Palette, then "Open Keyboard Shortcuts (JSON)") 73 | to add bindings that work in Terminal on MacOS: 74 | 75 | ``` 76 | [ 77 | { 78 | "key": "ctrl+left", 79 | "command": "workbench.action.terminal.sendSequence", 80 | "args": { "text": "\u001bb" }, 81 | "when": "terminalFocus" 82 | }, 83 | { 84 | "key": "ctrl+right", 85 | "command": "workbench.action.terminal.sendSequence", 86 | "args": { "text": "\u001bf" }, 87 | "when": "terminalFocus" 88 | }, 89 | ] 90 | ``` 91 | 92 | ### Home and End in Terminal on MacOS 93 | 94 | On Windows, the Home and End keys move to the start and end of line in a 95 | Terminal window. This behavior isn't due to a normal VSCode binding (it 96 | probably comes from the underlying GUI library), so this extension 97 | doesn't replicate that behavior (since it just copies all normal 98 | bindings), and consequently those keys do nothing in the VSCode Terminal 99 | window on Mac. In order to bind those keys, you can add to your 100 | `keybindings.json` file: 101 | 102 | ``` 103 | [ 104 | { 105 | "key": "home", 106 | "command": "workbench.action.terminal.sendSequence", 107 | "args": { "text": "\u0001" }, 108 | "when": "terminalFocus" 109 | }, 110 | { 111 | "key": "end", 112 | "command": "workbench.action.terminal.sendSequence", 113 | "args": { "text": "\u0005" }, 114 | "when": "terminalFocus" 115 | } 116 | ] 117 | ``` 118 | 119 | The above assumes you are using `zsh`, the default shell. If you are 120 | using another shell (such as `bash`), the text to send may need 121 | adjustment. See 122 | [Can home and end keys be mapped when using Terminal?](https://apple.stackexchange.com/questions/12997/can-home-and-end-keys-be-mapped-when-using-terminal) 123 | for more information. 124 | 125 | ## How it was created 126 | 127 | For the curious or adventurous, the procedure I used to create this 128 | extension is: 129 | 130 | 1. Run `yo code` to make a new keybindings extension. 131 | 2. Disable all non-default extensions (within the workspace) so their 132 | entries do not appear in the output from the next command. 133 | 3. Run command "Preference: Open Default Keyboard Shortcuts (JSON)" 134 | from the command palette. 135 | 4. Copy the output into the `contributes.keybindings` section 136 | of `package.json`. 137 | 5. Tidy up `package.json` by adding `publisher`, etc. 138 | 6. Write documentation. 139 | -------------------------------------------------------------------------------- /bindings-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smcpeak/vscode-default-keys-windows/5810b300e70f46a678c4a242e7ecd9c69855f191/bindings-screenshot.png -------------------------------------------------------------------------------- /bindings-screenshot.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smcpeak/vscode-default-keys-windows/5810b300e70f46a678c4a242e7ecd9c69855f191/bindings-screenshot.xcf -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smcpeak/vscode-default-keys-windows/5810b300e70f46a678c4a242e7ecd9c69855f191/icon.png -------------------------------------------------------------------------------- /icon.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smcpeak/vscode-default-keys-windows/5810b300e70f46a678c4a242e7ecd9c69855f191/icon.xcf -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "default-keys-windows", 3 | "displayName": "Windows Default Keybindings", 4 | "description": "Provide Windows default keybindings on any platform.", 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/smcpeak/vscode-default-keys-windows" 8 | }, 9 | "icon": "icon.png", 10 | "license": "MIT", 11 | "publisher": "smcpeak", 12 | "version": "0.0.10", 13 | "engines": { 14 | "vscode": "^1.78.0" 15 | }, 16 | "categories": [ 17 | "Keymaps" 18 | ], 19 | "keywords": [ 20 | "keymap" 21 | ], 22 | "scripts": { 23 | "package": "vsce package" 24 | }, 25 | "contributes": { 26 | "keybindings": [ 27 | { "key": "escape escape", "command": "workbench.action.exitZenMode", 28 | "when": "inZenMode" }, 29 | { "key": "shift+escape", "command": "closeReferenceSearch", 30 | "when": "inReferenceSearchEditor && !config.editor.stablePeek" }, 31 | { "key": "escape", "command": "closeReferenceSearch", 32 | "when": "inReferenceSearchEditor && !config.editor.stablePeek" }, 33 | { "key": "escape", "command": "editor.closeTestPeek", 34 | "when": "testing.isInPeek && !config.editor.stablePeek || testing.isPeekVisible && !config.editor.stablePeek" }, 35 | { "key": "shift+escape", "command": "cancelSelection", 36 | "when": "editorHasSelection && textInputFocus" }, 37 | { "key": "escape", "command": "cancelSelection", 38 | "when": "editorHasSelection && textInputFocus" }, 39 | { "key": "ctrl+end", "command": "cursorBottom", 40 | "when": "textInputFocus" }, 41 | { "key": "ctrl+shift+end", "command": "cursorBottomSelect", 42 | "when": "textInputFocus" }, 43 | { "key": "ctrl+shift+alt+down", "command": "cursorColumnSelectDown", 44 | "when": "textInputFocus" }, 45 | { "key": "ctrl+shift+alt+left", "command": "cursorColumnSelectLeft", 46 | "when": "textInputFocus" }, 47 | { "key": "ctrl+shift+alt+pagedown", "command": "cursorColumnSelectPageDown", 48 | "when": "textInputFocus" }, 49 | { "key": "ctrl+shift+alt+pageup", "command": "cursorColumnSelectPageUp", 50 | "when": "textInputFocus" }, 51 | { "key": "ctrl+shift+alt+right", "command": "cursorColumnSelectRight", 52 | "when": "textInputFocus" }, 53 | { "key": "ctrl+shift+alt+up", "command": "cursorColumnSelectUp", 54 | "when": "textInputFocus" }, 55 | { "key": "down", "command": "cursorDown", 56 | "when": "textInputFocus" }, 57 | { "key": "ctrl+shift+down", "command": "cursorDownSelect", 58 | "when": "textInputFocus" }, 59 | { "key": "shift+down", "command": "cursorDownSelect", 60 | "when": "textInputFocus" }, 61 | { "key": "end", "command": "cursorEnd", 62 | "when": "textInputFocus", 63 | "args": {"sticky":false} }, 64 | { "key": "shift+end", "command": "cursorEndSelect", 65 | "when": "textInputFocus", 66 | "args": {"sticky":false} }, 67 | { "key": "home", "command": "cursorHome", 68 | "when": "textInputFocus" }, 69 | { "key": "shift+home", "command": "cursorHomeSelect", 70 | "when": "textInputFocus" }, 71 | { "key": "left", "command": "cursorLeft", 72 | "when": "textInputFocus" }, 73 | { "key": "shift+left", "command": "cursorLeftSelect", 74 | "when": "textInputFocus" }, 75 | { "key": "pagedown", "command": "cursorPageDown", 76 | "when": "textInputFocus" }, 77 | { "key": "shift+pagedown", "command": "cursorPageDownSelect", 78 | "when": "textInputFocus" }, 79 | { "key": "pageup", "command": "cursorPageUp", 80 | "when": "textInputFocus" }, 81 | { "key": "shift+pageup", "command": "cursorPageUpSelect", 82 | "when": "textInputFocus" }, 83 | { "key": "right", "command": "cursorRight", 84 | "when": "textInputFocus" }, 85 | { "key": "shift+right", "command": "cursorRightSelect", 86 | "when": "textInputFocus" }, 87 | { "key": "ctrl+home", "command": "cursorTop", 88 | "when": "textInputFocus" }, 89 | { "key": "ctrl+shift+home", "command": "cursorTopSelect", 90 | "when": "textInputFocus" }, 91 | { "key": "up", "command": "cursorUp", 92 | "when": "textInputFocus" }, 93 | { "key": "ctrl+shift+up", "command": "cursorUpSelect", 94 | "when": "textInputFocus" }, 95 | { "key": "shift+up", "command": "cursorUpSelect", 96 | "when": "textInputFocus" }, 97 | { "key": "shift+backspace", "command": "deleteLeft", 98 | "when": "textInputFocus" }, 99 | { "key": "backspace", "command": "deleteLeft", 100 | "when": "textInputFocus" }, 101 | { "key": "delete", "command": "deleteRight", 102 | "when": "textInputFocus" }, 103 | { "key": "ctrl+a", "command": "editor.action.selectAll" }, 104 | { "key": "ctrl+l", "command": "expandLineSelection", 105 | "when": "textInputFocus" }, 106 | { "key": "down", "command": "interactiveEditor.arrowOutDown", 107 | "when": "interactiveEditorFocused && interactiveEditorHasProvider && interactiveEditorInnerCursorLast" }, 108 | { "key": "up", "command": "interactiveEditor.arrowOutUp", 109 | "when": "interactiveEditorFocused && interactiveEditorHasProvider && interactiveEditorInnerCursorFirst" }, 110 | { "key": "shift+tab", "command": "outdent", 111 | "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus" }, 112 | { "key": "ctrl+shift+z", "command": "redo" }, 113 | { "key": "ctrl+y", "command": "redo" }, 114 | { "key": "ctrl+down", "command": "scrollLineDown", 115 | "when": "textInputFocus" }, 116 | { "key": "ctrl+up", "command": "scrollLineUp", 117 | "when": "textInputFocus" }, 118 | { "key": "alt+pagedown", "command": "scrollPageDown", 119 | "when": "textInputFocus" }, 120 | { "key": "alt+pageup", "command": "scrollPageUp", 121 | "when": "textInputFocus" }, 122 | { "key": "tab", "command": "tab", 123 | "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus" }, 124 | { "key": "ctrl+z", "command": "undo" }, 125 | { "key": "shift+down", "command": "cursorColumnSelectDown", 126 | "when": "editorColumnSelection && textInputFocus" }, 127 | { "key": "shift+left", "command": "cursorColumnSelectLeft", 128 | "when": "editorColumnSelection && textInputFocus" }, 129 | { "key": "shift+pagedown", "command": "cursorColumnSelectPageDown", 130 | "when": "editorColumnSelection && textInputFocus" }, 131 | { "key": "shift+pageup", "command": "cursorColumnSelectPageUp", 132 | "when": "editorColumnSelection && textInputFocus" }, 133 | { "key": "shift+right", "command": "cursorColumnSelectRight", 134 | "when": "editorColumnSelection && textInputFocus" }, 135 | { "key": "shift+up", "command": "cursorColumnSelectUp", 136 | "when": "editorColumnSelection && textInputFocus" }, 137 | { "key": "shift+escape", "command": "removeSecondaryCursors", 138 | "when": "editorHasMultipleSelections && textInputFocus" }, 139 | { "key": "escape", "command": "removeSecondaryCursors", 140 | "when": "editorHasMultipleSelections && textInputFocus" }, 141 | { "key": "enter", "command": "interactiveEditor.accept", 142 | "when": "interactiveEditorFocused && interactiveEditorHasProvider && interactiveEditorVisible && !interactiveEditorEmpty" }, 143 | { "key": "down", "command": "interactiveEditor.focus", 144 | "when": "editorTextFocus && interactiveEditorVisible && !interactiveEditorFocused && interactiveEditorOuterCursorPosition == 'above'" }, 145 | { "key": "up", "command": "interactiveEditor.focus", 146 | "when": "editorTextFocus && interactiveEditorVisible && !interactiveEditorFocused && interactiveEditorOuterCursorPosition == 'below'" }, 147 | { "key": "ctrl+down", "command": "interactiveEditor.nextFromHistory", 148 | "when": "interactiveEditorFocused && interactiveEditorHasProvider" }, 149 | { "key": "ctrl+up", "command": "interactiveEditor.previousFromHistory", 150 | "when": "interactiveEditorFocused && interactiveEditorHasProvider" }, 151 | { "key": "f12", "command": "goToNextReference", 152 | "when": "inReferenceSearchEditor || referenceSearchVisible" }, 153 | { "key": "f4", "command": "goToNextReference", 154 | "when": "inReferenceSearchEditor || referenceSearchVisible" }, 155 | { "key": "shift+f12", "command": "goToPreviousReference", 156 | "when": "inReferenceSearchEditor || referenceSearchVisible" }, 157 | { "key": "shift+f4", "command": "goToPreviousReference", 158 | "when": "inReferenceSearchEditor || referenceSearchVisible" }, 159 | { "key": "shift+enter", "command": "refactorPreview.apply", 160 | "when": "refactorPreview.enabled && refactorPreview.hasCheckedChanges && focusedView == 'refactorPreview'" }, 161 | { "key": "alt+enter", "command": "testing.editFocusedTest", 162 | "when": "focusedView == 'workbench.view.testing'" }, 163 | { "key": "escape", "command": "notebook.cell.quitEdit", 164 | "when": "inputFocus && notebookEditorFocused && !editorHasMultipleSelections && !editorHasSelection && !editorHoverVisible" }, 165 | { "key": "ctrl+alt+enter", "command": "notebook.cell.quitEdit", 166 | "when": "inputFocus && notebookEditorFocused && notebookCellType == 'markup'" }, 167 | { "key": "escape", "command": "interactiveEditor.cancel", 168 | "when": "interactiveEditorHasProvider && interactiveEditorVisible" }, 169 | { "key": "ctrl+f", "command": "actions.find", 170 | "when": "editorFocus || editorIsOpen" }, 171 | { "key": "enter", "command": "breakpointWidget.action.acceptInput", 172 | "when": "breakpointWidgetVisible && inBreakpointWidget" }, 173 | { "key": "shift+escape", "command": "closeBreakpointWidget", 174 | "when": "breakpointWidgetVisible && textInputFocus" }, 175 | { "key": "escape", "command": "closeBreakpointWidget", 176 | "when": "breakpointWidgetVisible && textInputFocus" }, 177 | { "key": "ctrl+u", "command": "cursorUndo", 178 | "when": "textInputFocus" }, 179 | { "key": "ctrl+right", "command": "cursorWordEndRight", 180 | "when": "textInputFocus && !accessibilityModeEnabled" }, 181 | { "key": "ctrl+shift+right", "command": "cursorWordEndRightSelect", 182 | "when": "textInputFocus && !accessibilityModeEnabled" }, 183 | { "key": "ctrl+left", "command": "cursorWordLeft", 184 | "when": "textInputFocus && !accessibilityModeEnabled" }, 185 | { "key": "ctrl+shift+left", "command": "cursorWordLeftSelect", 186 | "when": "textInputFocus && !accessibilityModeEnabled" }, 187 | { "key": "ctrl+backspace", "command": "deleteWordLeft", 188 | "when": "textInputFocus && !editorReadonly" }, 189 | { "key": "ctrl+delete", "command": "deleteWordRight", 190 | "when": "textInputFocus && !editorReadonly" }, 191 | { "key": "ctrl+k ctrl+c", "command": "editor.action.addCommentLine", 192 | "when": "editorTextFocus && !editorReadonly" }, 193 | { "key": "ctrl+d", "command": "editor.action.addSelectionToNextFindMatch", 194 | "when": "editorFocus" }, 195 | { "key": "shift+alt+.", "command": "editor.action.autoFix", 196 | "when": "textInputFocus && !editorReadonly && supportedCodeAction =~ /(\\s|^)quickfix\\b/" }, 197 | { "key": "shift+alt+a", "command": "editor.action.blockComment", 198 | "when": "editorTextFocus && !editorReadonly" }, 199 | { "key": "escape", "command": "editor.action.cancelSelectionAnchor", 200 | "when": "editorTextFocus && selectionAnchorSet" }, 201 | { "key": "ctrl+f2", "command": "editor.action.changeAll", 202 | "when": "editorTextFocus && !editorReadonly" }, 203 | { "key": "ctrl+insert", "command": "editor.action.clipboardCopyAction" }, 204 | { "key": "ctrl+c", "command": "editor.action.clipboardCopyAction" }, 205 | { "key": "shift+delete", "command": "editor.action.clipboardCutAction" }, 206 | { "key": "ctrl+x", "command": "editor.action.clipboardCutAction" }, 207 | { "key": "shift+insert", "command": "editor.action.clipboardPasteAction" }, 208 | { "key": "ctrl+v", "command": "editor.action.clipboardPasteAction" }, 209 | { "key": "ctrl+/", "command": "editor.action.commentLine", 210 | "when": "editorTextFocus && !editorReadonly" }, 211 | { "key": "shift+alt+down", "command": "editor.action.copyLinesDownAction", 212 | "when": "editorTextFocus && !editorReadonly" }, 213 | { "key": "shift+alt+up", "command": "editor.action.copyLinesUpAction", 214 | "when": "editorTextFocus && !editorReadonly" }, 215 | { "key": "ctrl+shift+k", "command": "editor.action.deleteLines", 216 | "when": "textInputFocus && !editorReadonly" }, 217 | { "key": "f7", "command": "editor.action.diffReview.next", 218 | "when": "isInDiffEditor" }, 219 | { "key": "shift+f7", "command": "editor.action.diffReview.prev", 220 | "when": "isInDiffEditor" }, 221 | { "key": "alt+f3", "command": "editor.action.dirtydiff.next", 222 | "when": "editorTextFocus && !textCompareEditorActive" }, 223 | { "key": "shift+alt+f3", "command": "editor.action.dirtydiff.previous", 224 | "when": "editorTextFocus && !textCompareEditorActive" }, 225 | { "key": "escape", "command": "editor.action.escapeFocusHover", 226 | "when": "editorHoverFocused" }, 227 | { "key": "enter", "command": "editor.action.extensioneditor.findNext", 228 | "when": "webviewFindWidgetFocused && !editorFocus && activeEditor == 'workbench.editor.extension'" }, 229 | { "key": "shift+enter", "command": "editor.action.extensioneditor.findPrevious", 230 | "when": "webviewFindWidgetFocused && !editorFocus && activeEditor == 'workbench.editor.extension'" }, 231 | { "key": "ctrl+f", "command": "editor.action.extensioneditor.showfind", 232 | "when": "!editorFocus && activeEditor == 'workbench.editor.extension'" }, 233 | { "key": "shift+alt+f", "command": "editor.action.formatDocument", 234 | "when": "editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly && !inCompositeEditor" }, 235 | { "key": "shift+alt+f", "command": "editor.action.formatDocument.none", 236 | "when": "editorTextFocus && !editorHasDocumentFormattingProvider && !editorReadonly" }, 237 | { "key": "ctrl+k ctrl+f", "command": "editor.action.formatSelection", 238 | "when": "editorHasDocumentSelectionFormattingProvider && editorTextFocus && !editorReadonly" }, 239 | { "key": "ctrl+down", "command": "editor.action.goToBottomHover", 240 | "when": "editorHoverFocused" }, 241 | { "key": "end", "command": "editor.action.goToBottomHover", 242 | "when": "editorHoverFocused" }, 243 | { "key": "enter", "command": "editor.action.goToFocusedStickyScrollLine", 244 | "when": "stickyScrollFocused" }, 245 | { "key": "ctrl+f12", "command": "editor.action.goToImplementation", 246 | "when": "editorHasImplementationProvider && editorTextFocus && !isInEmbeddedEditor" }, 247 | { "key": "shift+f12", "command": "editor.action.goToReferences", 248 | "when": "editorHasReferenceProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor" }, 249 | { "key": "ctrl+up", "command": "editor.action.goToTopHover", 250 | "when": "editorHoverFocused" }, 251 | { "key": "home", "command": "editor.action.goToTopHover", 252 | "when": "editorHoverFocused" }, 253 | { "key": "escape", "command": "editor.action.hideColorPicker", 254 | "when": "standaloneColorPickerVisible" }, 255 | { "key": "ctrl+shift+.", "command": "editor.action.inPlaceReplace.down", 256 | "when": "editorTextFocus && !editorReadonly" }, 257 | { "key": "ctrl+shift+,", "command": "editor.action.inPlaceReplace.up", 258 | "when": "editorTextFocus && !editorReadonly" }, 259 | { "key": "ctrl+]", "command": "editor.action.indentLines", 260 | "when": "editorTextFocus && !editorReadonly" }, 261 | { "key": "escape", "command": "editor.action.inlineSuggest.hide", 262 | "when": "inlineSuggestionVisible" }, 263 | { "key": "alt+]", "command": "editor.action.inlineSuggest.showNext", 264 | "when": "inlineSuggestionVisible && !editorReadonly" }, 265 | { "key": "alt+[", "command": "editor.action.inlineSuggest.showPrevious", 266 | "when": "inlineSuggestionVisible && !editorReadonly" }, 267 | { "key": "enter", "command": "editor.action.insertColorWithStandaloneColorPicker", 268 | "when": "standaloneColorPickerFocused" }, 269 | { "key": "ctrl+alt+up", "command": "editor.action.insertCursorAbove", 270 | "when": "editorTextFocus" }, 271 | { "key": "shift+alt+i", "command": "editor.action.insertCursorAtEndOfEachLineSelected", 272 | "when": "editorTextFocus" }, 273 | { "key": "ctrl+alt+down", "command": "editor.action.insertCursorBelow", 274 | "when": "editorTextFocus" }, 275 | { "key": "ctrl+enter", "command": "editor.action.insertLineAfter", 276 | "when": "editorTextFocus && !editorReadonly" }, 277 | { "key": "ctrl+shift+enter", "command": "editor.action.insertLineBefore", 278 | "when": "editorTextFocus && !editorReadonly" }, 279 | { "key": "ctrl+shift+\\", "command": "editor.action.jumpToBracket", 280 | "when": "editorTextFocus" }, 281 | { "key": "ctrl+shift+f2", "command": "editor.action.linkedEditing", 282 | "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly" }, 283 | { "key": "alt+f8", "command": "editor.action.marker.next", 284 | "when": "editorFocus" }, 285 | { "key": "f8", "command": "editor.action.marker.nextInFiles", 286 | "when": "editorFocus" }, 287 | { "key": "shift+alt+f8", "command": "editor.action.marker.prev", 288 | "when": "editorFocus" }, 289 | { "key": "shift+f8", "command": "editor.action.marker.prevInFiles", 290 | "when": "editorFocus" }, 291 | { "key": "alt+down", "command": "editor.action.moveLinesDownAction", 292 | "when": "editorTextFocus && !editorReadonly" }, 293 | { "key": "alt+up", "command": "editor.action.moveLinesUpAction", 294 | "when": "editorTextFocus && !editorReadonly" }, 295 | { "key": "ctrl+k ctrl+d", "command": "editor.action.moveSelectionToNextFindMatch", 296 | "when": "editorFocus" }, 297 | { "key": "alt+f9", "command": "editor.action.nextCommentThreadAction", 298 | "when": "editorFocus" }, 299 | { "key": "f3", "command": "editor.action.nextMatchFindAction", 300 | "when": "editorFocus" }, 301 | { "key": "enter", "command": "editor.action.nextMatchFindAction", 302 | "when": "editorFocus && findInputFocussed" }, 303 | { "key": "ctrl+f3", "command": "editor.action.nextSelectionMatchFindAction", 304 | "when": "editorFocus" }, 305 | { "key": "shift+alt+o", "command": "editor.action.organizeImports", 306 | "when": "textInputFocus && !editorReadonly && supportedCodeAction =~ /(\\s|^)source\\.organizeImports\\b/" }, 307 | { "key": "ctrl+[", "command": "editor.action.outdentLines", 308 | "when": "editorTextFocus && !editorReadonly" }, 309 | { "key": "alt+down", "command": "editor.action.pageDownHover", 310 | "when": "editorHoverFocused" }, 311 | { "key": "pagedown", "command": "editor.action.pageDownHover", 312 | "when": "editorHoverFocused" }, 313 | { "key": "alt+up", "command": "editor.action.pageUpHover", 314 | "when": "editorHoverFocused" }, 315 | { "key": "pageup", "command": "editor.action.pageUpHover", 316 | "when": "editorHoverFocused" }, 317 | { "key": "alt+f12", "command": "editor.action.peekDefinition", 318 | "when": "editorHasDefinitionProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor" }, 319 | { "key": "ctrl+shift+f12", "command": "editor.action.peekImplementation", 320 | "when": "editorHasImplementationProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor" }, 321 | { "key": "shift+alt+f9", "command": "editor.action.previousCommentThreadAction", 322 | "when": "editorFocus" }, 323 | { "key": "shift+f3", "command": "editor.action.previousMatchFindAction", 324 | "when": "editorFocus" }, 325 | { "key": "shift+enter", "command": "editor.action.previousMatchFindAction", 326 | "when": "editorFocus && findInputFocussed" }, 327 | { "key": "ctrl+shift+f3", "command": "editor.action.previousSelectionMatchFindAction", 328 | "when": "editorFocus" }, 329 | { "key": "ctrl+.", "command": "editor.action.quickFix", 330 | "when": "editorHasCodeActionsProvider && textInputFocus && !editorReadonly" }, 331 | { "key": "ctrl+shift+r", "command": "editor.action.refactor", 332 | "when": "editorHasCodeActionsProvider && textInputFocus && !editorReadonly" }, 333 | { "key": "ctrl+alt+backspace", "command": "editor.action.removeBrackets", 334 | "when": "editorTextFocus" }, 335 | { "key": "ctrl+k ctrl+u", "command": "editor.action.removeCommentLine", 336 | "when": "editorTextFocus && !editorReadonly" }, 337 | { "key": "f2", "command": "editor.action.rename", 338 | "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly" }, 339 | { "key": "f12", "command": "editor.action.revealDefinition", 340 | "when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor" }, 341 | { "key": "ctrl+k f12", "command": "editor.action.revealDefinitionAside", 342 | "when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor" }, 343 | { "key": "down", "command": "editor.action.scrollDownHover", 344 | "when": "editorHoverFocused" }, 345 | { "key": "left", "command": "editor.action.scrollLeftHover", 346 | "when": "editorHoverFocused" }, 347 | { "key": "right", "command": "editor.action.scrollRightHover", 348 | "when": "editorHoverFocused" }, 349 | { "key": "up", "command": "editor.action.scrollUpHover", 350 | "when": "editorHoverFocused" }, 351 | { "key": "escape", "command": "editor.action.selectEditor", 352 | "when": "stickyScrollFocused" }, 353 | { "key": "ctrl+k ctrl+k", "command": "editor.action.selectFromAnchorToCursor", 354 | "when": "editorTextFocus && selectionAnchorSet" }, 355 | { "key": "ctrl+shift+l", "command": "editor.action.selectHighlights", 356 | "when": "editorFocus" }, 357 | { "key": "down", "command": "editor.action.selectNextStickyScrollLine", 358 | "when": "stickyScrollFocused" }, 359 | { "key": "up", "command": "editor.action.selectPreviousStickyScrollLine", 360 | "when": "stickyScrollFocused" }, 361 | { "key": "ctrl+k ctrl+b", "command": "editor.action.setSelectionAnchor", 362 | "when": "editorTextFocus" }, 363 | { "key": "alt+f1", "command": "editor.action.showAccessibilityHelp" }, 364 | { "key": "shift+f10", "command": "editor.action.showContextMenu", 365 | "when": "textInputFocus" }, 366 | { "key": "ctrl+k ctrl+i", "command": "editor.action.showHover", 367 | "when": "editorTextFocus" }, 368 | { "key": "shift+alt+right", "command": "editor.action.smartSelect.expand", 369 | "when": "editorTextFocus" }, 370 | { "key": "shift+alt+left", "command": "editor.action.smartSelect.shrink", 371 | "when": "editorTextFocus" }, 372 | { "key": "ctrl+h", "command": "editor.action.startFindReplaceAction", 373 | "when": "editorFocus || editorIsOpen" }, 374 | { "key": "ctrl+m", "command": "editor.action.toggleTabFocusMode" }, 375 | { "key": "alt+z", "command": "editor.action.toggleWordWrap" }, 376 | { "key": "ctrl+shift+space", "command": "editor.action.triggerParameterHints", 377 | "when": "editorHasSignatureHelpProvider && editorTextFocus" }, 378 | { "key": "ctrl+i", "command": "editor.action.triggerSuggest", 379 | "when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly && !suggestWidgetVisible" }, 380 | { "key": "ctrl+space", "command": "editor.action.triggerSuggest", 381 | "when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly && !suggestWidgetVisible" }, 382 | { "key": "ctrl+k ctrl+x", "command": "editor.action.trimTrailingWhitespace", 383 | "when": "editorTextFocus && !editorReadonly" }, 384 | { "key": "enter", "command": "editor.action.webvieweditor.findNext", 385 | "when": "webviewFindWidgetFocused && !editorFocus && activeEditor == 'WebviewEditor'" }, 386 | { "key": "shift+enter", "command": "editor.action.webvieweditor.findPrevious", 387 | "when": "webviewFindWidgetFocused && !editorFocus && activeEditor == 'WebviewEditor'" }, 388 | { "key": "escape", "command": "editor.action.webvieweditor.hideFind", 389 | "when": "webviewFindWidgetVisible && !editorFocus && activeEditor == 'WebviewEditor'" }, 390 | { "key": "ctrl+f", "command": "editor.action.webvieweditor.showFind", 391 | "when": "webviewFindWidgetEnabled && !editorFocus && activeEditor == 'WebviewEditor'" }, 392 | { "key": "f7", "command": "editor.action.wordHighlight.next", 393 | "when": "editorTextFocus && hasWordHighlights" }, 394 | { "key": "shift+f7", "command": "editor.action.wordHighlight.prev", 395 | "when": "editorTextFocus && hasWordHighlights" }, 396 | { "key": "escape", "command": "editor.cancelOperation", 397 | "when": "cancellableOperation" }, 398 | { "key": "ctrl+.", "command": "editor.changeDropType", 399 | "when": "dropWidgetVisible" }, 400 | { "key": "ctrl+k ctrl+,", "command": "editor.createFoldingRangeFromSelection", 401 | "when": "editorTextFocus && foldingEnabled" }, 402 | { "key": "escape", "command": "editor.debug.action.closeExceptionWidget", 403 | "when": "exceptionWidgetVisible" }, 404 | { "key": "ctrl+k ctrl+i", "command": "editor.debug.action.showDebugHover", 405 | "when": "editorTextFocus && inDebugMode" }, 406 | { "key": "f9", "command": "editor.debug.action.toggleBreakpoint", 407 | "when": "debuggersAvailable && editorTextFocus" }, 408 | { "key": "tab", "command": "editor.emmet.action.expandAbbreviation", 409 | "when": "config.emmet.triggerExpansionOnTab && editorTextFocus && !editorReadonly && !editorTabMovesFocus" }, 410 | { "key": "ctrl+shift+[", "command": "editor.fold", 411 | "when": "editorTextFocus && foldingEnabled" }, 412 | { "key": "ctrl+k ctrl+0", "command": "editor.foldAll", 413 | "when": "editorTextFocus && foldingEnabled" }, 414 | { "key": "ctrl+k ctrl+/", "command": "editor.foldAllBlockComments", 415 | "when": "editorTextFocus && foldingEnabled" }, 416 | { "key": "ctrl+k ctrl+-", "command": "editor.foldAllExcept", 417 | "when": "editorTextFocus && foldingEnabled" }, 418 | { "key": "ctrl+k ctrl+8", "command": "editor.foldAllMarkerRegions", 419 | "when": "editorTextFocus && foldingEnabled" }, 420 | { "key": "ctrl+k ctrl+1", "command": "editor.foldLevel1", 421 | "when": "editorTextFocus && foldingEnabled" }, 422 | { "key": "ctrl+k ctrl+2", "command": "editor.foldLevel2", 423 | "when": "editorTextFocus && foldingEnabled" }, 424 | { "key": "ctrl+k ctrl+3", "command": "editor.foldLevel3", 425 | "when": "editorTextFocus && foldingEnabled" }, 426 | { "key": "ctrl+k ctrl+4", "command": "editor.foldLevel4", 427 | "when": "editorTextFocus && foldingEnabled" }, 428 | { "key": "ctrl+k ctrl+5", "command": "editor.foldLevel5", 429 | "when": "editorTextFocus && foldingEnabled" }, 430 | { "key": "ctrl+k ctrl+6", "command": "editor.foldLevel6", 431 | "when": "editorTextFocus && foldingEnabled" }, 432 | { "key": "ctrl+k ctrl+7", "command": "editor.foldLevel7", 433 | "when": "editorTextFocus && foldingEnabled" }, 434 | { "key": "ctrl+k ctrl+[", "command": "editor.foldRecursively", 435 | "when": "editorTextFocus && foldingEnabled" }, 436 | { "key": "f12", "command": "editor.gotoNextSymbolFromResult", 437 | "when": "hasSymbols" }, 438 | { "key": "escape", "command": "editor.gotoNextSymbolFromResult.cancel", 439 | "when": "hasSymbols" }, 440 | { "key": "ctrl+k ctrl+.", "command": "editor.removeManualFoldingRanges", 441 | "when": "editorTextFocus && foldingEnabled" }, 442 | { "key": "ctrl+k ctrl+l", "command": "editor.toggleFold", 443 | "when": "editorTextFocus && foldingEnabled" }, 444 | { "key": "ctrl+shift+]", "command": "editor.unfold", 445 | "when": "editorTextFocus && foldingEnabled" }, 446 | { "key": "ctrl+k ctrl+j", "command": "editor.unfoldAll", 447 | "when": "editorTextFocus && foldingEnabled" }, 448 | { "key": "ctrl+k ctrl+=", "command": "editor.unfoldAllExcept", 449 | "when": "editorTextFocus && foldingEnabled" }, 450 | { "key": "ctrl+k ctrl+9", "command": "editor.unfoldAllMarkerRegions", 451 | "when": "editorTextFocus && foldingEnabled" }, 452 | { "key": "ctrl+k ctrl+]", "command": "editor.unfoldRecursively", 453 | "when": "editorTextFocus && foldingEnabled" }, 454 | { "key": "escape", "command": "inlayHints.stopReadingLineWithHint", 455 | "when": "isReadingLineWithInlayHints" }, 456 | { "key": "tab", "command": "insertSnippet", 457 | "when": "editorTextFocus && hasSnippetCompletions && !editorTabMovesFocus && !inSnippetMode" }, 458 | { "key": "ctrl+enter", "command": "interactive.execute", 459 | "when": "resourceScheme == 'vscode-interactive'" }, 460 | { "key": "escape", "command": "interactiveEditor.stop", 461 | "when": "interactiveEditorHasActiveRequest && interactiveEditorHasProvider && interactiveEditorVisible && !interactiveEditorEmpty" }, 462 | { "key": "enter", "command": "interactiveSession.action.acceptInput", 463 | "when": "inInteractiveInput && textInputFocus" }, 464 | { "key": "ctrl+up", "command": "interactiveSession.action.focus", 465 | "when": "inInteractiveInput && textInputFocus" }, 466 | { "key": "pagedown", "command": "notebook.cell.cursorPageDown", 467 | "when": "editorTextFocus && inputFocus && notebookEditorFocused" }, 468 | { "key": "shift+pagedown", "command": "notebook.cell.cursorPageDownSelect", 469 | "when": "editorTextFocus && inputFocus && notebookEditorFocused" }, 470 | { "key": "pageup", "command": "notebook.cell.cursorPageUp", 471 | "when": "editorTextFocus && inputFocus && notebookEditorFocused" }, 472 | { "key": "shift+pageup", "command": "notebook.cell.cursorPageUpSelect", 473 | "when": "editorTextFocus && inputFocus && notebookEditorFocused" }, 474 | { "key": "ctrl+alt+enter", "command": "notebook.cell.execute", 475 | "when": "notebookCellListFocused && notebookMissingKernelExtension && !notebookCellExecuting && notebookCellType == 'code' || notebookCellListFocused && !notebookCellExecuting && notebookCellType == 'code' && notebookKernelCount > 0 || notebookCellListFocused && !notebookCellExecuting && notebookCellType == 'code' && notebookKernelSourceCount > 0" }, 476 | { "key": "alt+enter", "command": "notebook.cell.executeAndInsertBelow", 477 | "when": "notebookCellListFocused && notebookCellType == 'markup' || notebookCellListFocused && notebookMissingKernelExtension && !notebookCellExecuting && notebookCellType == 'code' || notebookCellListFocused && !notebookCellExecuting && notebookCellType == 'code' && notebookKernelCount > 0 || notebookCellListFocused && !notebookCellExecuting && notebookCellType == 'code' && notebookKernelSourceCount > 0" }, 478 | { "key": "shift+enter", "command": "notebook.cell.executeAndSelectBelow", 479 | "when": "notebookCellListFocused && notebookCellType == 'markup' || notebookCellListFocused && notebookMissingKernelExtension && !notebookCellExecuting && notebookCellType == 'code' || notebookCellListFocused && !notebookCellExecuting && notebookCellType == 'code' && notebookKernelCount > 0 || notebookCellListFocused && !notebookCellExecuting && notebookCellType == 'code' && notebookKernelSourceCount > 0" }, 480 | { "key": "ctrl+shift+v", "command": "notebook.cell.pasteAbove", 481 | "when": "notebookEditorFocused && !inputFocus" }, 482 | { "key": "down", "command": "notebook.focusNextEditor", 483 | "when": "config.notebook.navigation.allowNavigateToSurroundingCells && editorTextFocus && inputFocus && notebookEditorFocused && !accessibilityModeEnabled && notebookEditorCursorAtBoundary != 'none' && notebookEditorCursorAtBoundary != 'top'" }, 484 | { "key": "up", "command": "notebook.focusPreviousEditor", 485 | "when": "config.notebook.navigation.allowNavigateToSurroundingCells && editorTextFocus && inputFocus && notebookEditorFocused && !accessibilityModeEnabled && notebookEditorCursorAtBoundary != 'bottom' && notebookEditorCursorAtBoundary != 'none'" }, 486 | { "key": "shift+alt+f", "command": "notebook.formatCell", 487 | "when": "editorHasDocumentFormattingProvider && editorTextFocus && inCompositeEditor && notebookEditable && !editorReadonly && activeEditor == 'workbench.editor.notebook'" }, 488 | { "key": "ctrl+enter", "command": "openReferenceToSide", 489 | "when": "listFocus && referenceSearchVisible && !inputFocus && !treeElementCanCollapse && !treeElementCanExpand" }, 490 | { "key": "enter", "command": "repl.action.acceptInput", 491 | "when": "inDebugRepl && textInputFocus" }, 492 | { "key": "ctrl+f", "command": "repl.action.filter", 493 | "when": "inDebugRepl && textInputFocus" }, 494 | { "key": "ctrl+shift+r", "command": "rerunSearchEditorSearch", 495 | "when": "inSearchEditor" }, 496 | { "key": "escape", "command": "search.action.focusQueryEditorWidget", 497 | "when": "inSearchEditor" }, 498 | { "key": "ctrl+shift+backspace", "command": "search.searchEditor.action.deleteFileResults", 499 | "when": "inSearchEditor" }, 500 | { "key": "escape", "command": "settings.action.clearSearchResults", 501 | "when": "inSettingsEditor && inSettingsSearch" }, 502 | { "key": "down", "command": "settings.action.focusSettingsFile", 503 | "when": "inSettingsSearch && !suggestWidgetVisible" }, 504 | { "key": "ctrl+f", "command": "settings.action.search", 505 | "when": "inSettingsEditor" }, 506 | { "key": "ctrl+/", "command": "toggleExplainMode", 507 | "when": "suggestWidgetVisible" }, 508 | { "key": "ctrl+k f2", "command": "togglePeekWidgetFocus", 509 | "when": "inReferenceSearchEditor || referenceSearchVisible" }, 510 | { "key": "escape", "command": "welcome.goBack", 511 | "when": "inWelcome && activeEditor == 'gettingStartedPage'" }, 512 | { "key": "alt+f5", "command": "workbench.action.editor.nextChange", 513 | "when": "editorTextFocus && !textCompareEditorActive" }, 514 | { "key": "shift+alt+f5", "command": "workbench.action.editor.previousChange", 515 | "when": "editorTextFocus && !textCompareEditorActive" }, 516 | { "key": "shift+escape", "command": "workbench.action.hideComment", 517 | "when": "commentEditorFocused" }, 518 | { "key": "escape", "command": "workbench.action.hideComment", 519 | "when": "commentEditorFocused" }, 520 | { "key": "ctrl+enter", "command": "workbench.action.submitComment", 521 | "when": "commentEditorFocused" }, 522 | { "key": "ctrl+right", "command": "editor.action.inlineSuggest.acceptNextWord", 523 | "when": "inlineSuggestionVisible && !editorReadonly" }, 524 | { "key": "alt+f8", "command": "testing.goToNextMessage", 525 | "when": "editorFocus && testing.isPeekVisible" }, 526 | { "key": "shift+alt+f8", "command": "testing.goToPreviousMessage", 527 | "when": "editorFocus && testing.isPeekVisible" }, 528 | { "key": "shift+escape", "command": "closeFindWidget", 529 | "when": "editorFocus && findWidgetVisible && !isComposing" }, 530 | { "key": "escape", "command": "closeFindWidget", 531 | "when": "editorFocus && findWidgetVisible && !isComposing" }, 532 | { "key": "ctrl+alt+enter", "command": "editor.action.replaceAll", 533 | "when": "editorFocus && findWidgetVisible" }, 534 | { "key": "ctrl+shift+1", "command": "editor.action.replaceOne", 535 | "when": "editorFocus && findWidgetVisible" }, 536 | { "key": "enter", "command": "editor.action.replaceOne", 537 | "when": "editorFocus && findWidgetVisible && replaceInputFocussed" }, 538 | { "key": "alt+enter", "command": "editor.action.selectAllMatches", 539 | "when": "editorFocus && findWidgetVisible" }, 540 | { "key": "alt+c", "command": "toggleFindCaseSensitive", 541 | "when": "editorFocus" }, 542 | { "key": "alt+l", "command": "toggleFindInSelection", 543 | "when": "editorFocus" }, 544 | { "key": "alt+r", "command": "toggleFindRegex", 545 | "when": "editorFocus" }, 546 | { "key": "alt+w", "command": "toggleFindWholeWord", 547 | "when": "editorFocus" }, 548 | { "key": "alt+p", "command": "togglePreserveCase", 549 | "when": "editorFocus" }, 550 | { "key": "ctrl+enter", "command": "interactiveEditor.applyEdits", 551 | "when": "interactiveEditorHasProvider && interactiveEditorVisible" }, 552 | { "key": "ctrl+shift+z", "command": "interactiveEditor.undoToClipboard", 553 | "when": "interactiveEditorHasProvider && interactiveEditorVisible && interactiveEditorLastEditKind == 'simple'" }, 554 | { "key": "tab", "command": "jumpToNextSnippetPlaceholder", 555 | "when": "editorTextFocus && hasNextTabstop && inSnippetMode" }, 556 | { "key": "shift+tab", "command": "jumpToPrevSnippetPlaceholder", 557 | "when": "editorTextFocus && hasPrevTabstop && inSnippetMode" }, 558 | { "key": "escape", "command": "leaveEditorMessage", 559 | "when": "messageVisible" }, 560 | { "key": "shift+escape", "command": "leaveSnippet", 561 | "when": "editorTextFocus && inSnippetMode" }, 562 | { "key": "escape", "command": "leaveSnippet", 563 | "when": "editorTextFocus && inSnippetMode" }, 564 | { "key": "shift+escape", "command": "closeDirtyDiff", 565 | "when": "dirtyDiffVisible" }, 566 | { "key": "escape", "command": "closeDirtyDiff", 567 | "when": "dirtyDiffVisible" }, 568 | { "key": "shift+escape", "command": "closeMarkersNavigation", 569 | "when": "editorFocus && markersNavigationVisible" }, 570 | { "key": "escape", "command": "closeMarkersNavigation", 571 | "when": "editorFocus && markersNavigationVisible" }, 572 | { "key": "escape", "command": "notifications.hideToasts", 573 | "when": "notificationToastsVisible" }, 574 | { "key": "shift+escape", "command": "closeParameterHints", 575 | "when": "editorFocus && parameterHintsVisible" }, 576 | { "key": "escape", "command": "closeParameterHints", 577 | "when": "editorFocus && parameterHintsVisible" }, 578 | { "key": "alt+down", "command": "showNextParameterHint", 579 | "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible" }, 580 | { "key": "down", "command": "showNextParameterHint", 581 | "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible" }, 582 | { "key": "alt+up", "command": "showPrevParameterHint", 583 | "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible" }, 584 | { "key": "up", "command": "showPrevParameterHint", 585 | "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible" }, 586 | { "key": "shift+tab", "command": "acceptAlternativeSelectedSuggestion", 587 | "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, 588 | { "key": "shift+enter", "command": "acceptAlternativeSelectedSuggestion", 589 | "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, 590 | { "key": "tab", "command": "acceptSelectedSuggestion", 591 | "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, 592 | { "key": "enter", "command": "acceptSelectedSuggestion", 593 | "when": "acceptSuggestionOnEnter && suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && suggestionMakesTextEdit && textInputFocus" }, 594 | { "key": "ctrl+i", "command": "focusSuggestion", 595 | "when": "suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion" }, 596 | { "key": "ctrl+space", "command": "focusSuggestion", 597 | "when": "suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion" }, 598 | { "key": "shift+escape", "command": "hideSuggestWidget", 599 | "when": "suggestWidgetVisible && textInputFocus" }, 600 | { "key": "escape", "command": "hideSuggestWidget", 601 | "when": "suggestWidgetVisible && textInputFocus" }, 602 | { "key": "tab", "command": "insertBestCompletion", 603 | "when": "atEndOfWord && textInputFocus && !hasOtherSuggestions && !inSnippetMode && !suggestWidgetVisible && config.editor.tabCompletion == 'on'" }, 604 | { "key": "tab", "command": "insertNextSuggestion", 605 | "when": "hasOtherSuggestions && textInputFocus && !inSnippetMode && !suggestWidgetVisible && config.editor.tabCompletion == 'on'" }, 606 | { "key": "shift+tab", "command": "insertPrevSuggestion", 607 | "when": "hasOtherSuggestions && textInputFocus && !inSnippetMode && !suggestWidgetVisible && config.editor.tabCompletion == 'on'" }, 608 | { "key": "ctrl+pagedown", "command": "selectNextPageSuggestion", 609 | "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion" }, 610 | { "key": "pagedown", "command": "selectNextPageSuggestion", 611 | "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion" }, 612 | { "key": "ctrl+down", "command": "selectNextSuggestion", 613 | "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion" }, 614 | { "key": "down", "command": "selectNextSuggestion", 615 | "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion" }, 616 | { "key": "ctrl+pageup", "command": "selectPrevPageSuggestion", 617 | "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion" }, 618 | { "key": "pageup", "command": "selectPrevPageSuggestion", 619 | "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion" }, 620 | { "key": "ctrl+up", "command": "selectPrevSuggestion", 621 | "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion" }, 622 | { "key": "up", "command": "selectPrevSuggestion", 623 | "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion" }, 624 | { "key": "ctrl+i", "command": "toggleSuggestionDetails", 625 | "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, 626 | { "key": "ctrl+space", "command": "toggleSuggestionDetails", 627 | "when": "suggestWidgetHasFocusedSuggestion && suggestWidgetVisible && textInputFocus" }, 628 | { "key": "ctrl+alt+space", "command": "toggleSuggestionFocus", 629 | "when": "suggestWidgetVisible && textInputFocus" }, 630 | { "key": "enter", "command": "acceptRenameInput", 631 | "when": "editorFocus && renameInputVisible && !isComposing" }, 632 | { "key": "shift+enter", "command": "acceptRenameInputWithPreview", 633 | "when": "config.editor.rename.enablePreview && editorFocus && renameInputVisible && !isComposing" }, 634 | { "key": "shift+escape", "command": "cancelLinkedEditingInput", 635 | "when": "LinkedEditingInputVisible && editorTextFocus" }, 636 | { "key": "escape", "command": "cancelLinkedEditingInput", 637 | "when": "LinkedEditingInputVisible && editorTextFocus" }, 638 | { "key": "shift+escape", "command": "cancelRenameInput", 639 | "when": "editorFocus && renameInputVisible" }, 640 | { "key": "escape", "command": "cancelRenameInput", 641 | "when": "editorFocus && renameInputVisible" }, 642 | { "key": "ctrl+shift+l", "command": "addCursorsAtSearchResults", 643 | "when": "fileMatchOrMatchFocus && searchViewletVisible" }, 644 | { "key": "ctrl+shift+;", "command": "breadcrumbs.focus", 645 | "when": "breadcrumbsPossible && breadcrumbsVisible" }, 646 | { "key": "ctrl+shift+.", "command": "breadcrumbs.focusAndSelect", 647 | "when": "breadcrumbsPossible && breadcrumbsVisible" }, 648 | { "key": "ctrl+right", "command": "breadcrumbs.focusNext", 649 | "when": "breadcrumbsActive && breadcrumbsVisible" }, 650 | { "key": "right", "command": "breadcrumbs.focusNext", 651 | "when": "breadcrumbsActive && breadcrumbsVisible" }, 652 | { "key": "ctrl+left", "command": "breadcrumbs.focusPrevious", 653 | "when": "breadcrumbsActive && breadcrumbsVisible" }, 654 | { "key": "left", "command": "breadcrumbs.focusPrevious", 655 | "when": "breadcrumbsActive && breadcrumbsVisible" }, 656 | { "key": "ctrl+enter", "command": "breadcrumbs.revealFocused", 657 | "when": "breadcrumbsActive && breadcrumbsVisible" }, 658 | { "key": "space", "command": "breadcrumbs.revealFocused", 659 | "when": "breadcrumbsActive && breadcrumbsVisible" }, 660 | { "key": "ctrl+enter", "command": "breadcrumbs.revealFocusedFromTreeAside", 661 | "when": "breadcrumbsActive && breadcrumbsVisible && listFocus && !inputFocus" }, 662 | { "key": "down", "command": "breadcrumbs.selectFocused", 663 | "when": "breadcrumbsActive && breadcrumbsVisible" }, 664 | { "key": "enter", "command": "breadcrumbs.selectFocused", 665 | "when": "breadcrumbsActive && breadcrumbsVisible" }, 666 | { "key": "ctrl+shift+.", "command": "breadcrumbs.toggleToOn", 667 | "when": "!config.breadcrumbs.enabled" }, 668 | { "key": "shift+escape", "command": "closeAccessibilityHelp", 669 | "when": "accessibilityHelpWidgetVisible && editorFocus" }, 670 | { "key": "escape", "command": "closeAccessibilityHelp", 671 | "when": "accessibilityHelpWidgetVisible && editorFocus" }, 672 | { "key": "escape", "command": "closeReplaceInFilesWidget", 673 | "when": "replaceInputBoxFocus && searchViewletVisible" }, 674 | { "key": "escape", "command": "commentsClearFilterText", 675 | "when": "commentsFilterFocus" }, 676 | { "key": "ctrl+f", "command": "commentsFocusFilter", 677 | "when": "focusedView == 'workbench.panel.comments'" }, 678 | { "key": "ctrl+down", "command": "commentsFocusViewFromFilter", 679 | "when": "commentsFilterFocus" }, 680 | { "key": "shift+alt+c", "command": "copyFilePath", 681 | "when": "!editorFocus" }, 682 | { "key": "shift+alt+c", "command": "copyFilePath", 683 | "when": "editorFocus" }, 684 | { "key": "ctrl+k ctrl+shift+c", "command": "copyRelativeFilePath", 685 | "when": "!editorFocus" }, 686 | { "key": "ctrl+k ctrl+shift+c", "command": "copyRelativeFilePath", 687 | "when": "editorFocus" }, 688 | { "key": "alt+enter", "command": "debug.openBreakpointToSide", 689 | "when": "breakpointsFocused" }, 690 | { "key": "ctrl+enter", "command": "debug.openBreakpointToSide", 691 | "when": "breakpointsFocused" }, 692 | { "key": "ctrl+f5", "command": "debug.openView", 693 | "when": "!debuggersAvailable" }, 694 | { "key": "f5", "command": "debug.openView", 695 | "when": "!debuggersAvailable" }, 696 | { "key": "delete", "command": "debug.removeBreakpoint", 697 | "when": "breakpointsFocused && !breakpointInputFocused" }, 698 | { "key": "delete", "command": "debug.removeWatchExpression", 699 | "when": "watchExpressionsFocused && !expressionSelected" }, 700 | { "key": "alt+-", "command": "decreaseSearchEditorContextLines", 701 | "when": "inSearchEditor" }, 702 | { "key": "ctrl+k ctrl+k", "command": "editor.action.defineKeybinding", 703 | "when": "resource == 'vscode-userdata:/c%3A/Users/Scott/AppData/Roaming/Code/User/keybindings.json'" }, 704 | { "key": "tab", "command": "editor.action.inlineSuggest.commit", 705 | "when": "inlineSuggestionHasIndentationLessThanTabSize && inlineSuggestionVisible && !editorTabMovesFocus" }, 706 | { "key": "shift+f9", "command": "editor.debug.action.toggleInlineBreakpoint", 707 | "when": "editorTextFocus" }, 708 | { "key": "shift+alt+d", "command": "editor.detectLanguage", 709 | "when": "editorTextFocus && !notebookEditable" }, 710 | { "key": "shift+enter", "command": "editor.refocusCallHierarchy", 711 | "when": "callHierarchyVisible" }, 712 | { "key": "shift+enter", "command": "editor.refocusTypeHierarchy", 713 | "when": "typeHierarchyVisible" }, 714 | { "key": "shift+alt+h", "command": "editor.showCallHierarchy", 715 | "when": "editorHasCallHierarchyProvider && editorTextFocus && !inReferenceSearchEditor" }, 716 | { "key": "shift+alt+h", "command": "editor.showIncomingCalls", 717 | "when": "callHierarchyVisible && callHierarchyDirection == 'outgoingCalls'" }, 718 | { "key": "shift+alt+h", "command": "editor.showOutgoingCalls", 719 | "when": "callHierarchyVisible && callHierarchyDirection == 'incomingCalls'" }, 720 | { "key": "shift+alt+h", "command": "editor.showSubtypes", 721 | "when": "typeHierarchyVisible && typeHierarchyDirection == 'supertypes'" }, 722 | { "key": "shift+alt+h", "command": "editor.showSupertypes", 723 | "when": "typeHierarchyVisible && typeHierarchyDirection == 'subtypes'" }, 724 | { "key": "ctrl+enter", "command": "explorer.openToSide", 725 | "when": "explorerViewletFocus && foldersViewVisible && !inputFocus" }, 726 | { "key": "shift+alt+f", "command": "filesExplorer.findInFolder", 727 | "when": "explorerResourceIsFolder && filesExplorerFocus && foldersViewVisible && !inputFocus" }, 728 | { "key": "alt+down", "command": "history.showNext", 729 | "when": "historyNavigationForwardsEnabled && historyNavigationWidgetFocus && !suggestWidgetVisible" }, 730 | { "key": "down", "command": "history.showNext", 731 | "when": "historyNavigationForwardsEnabled && historyNavigationWidgetFocus && !suggestWidgetVisible" }, 732 | { "key": "alt+up", "command": "history.showPrevious", 733 | "when": "historyNavigationBackwardsEnabled && historyNavigationWidgetFocus && !suggestWidgetVisible" }, 734 | { "key": "up", "command": "history.showPrevious", 735 | "when": "historyNavigationBackwardsEnabled && historyNavigationWidgetFocus && !suggestWidgetVisible" }, 736 | { "key": "alt+=", "command": "increaseSearchEditorContextLines", 737 | "when": "inSearchEditor" }, 738 | { "key": "down", "command": "interactive.history.next", 739 | "when": "!suggestWidgetVisible && resourceScheme == 'vscode-interactive' && interactiveInputCursorAtBoundary != 'none' && interactiveInputCursorAtBoundary != 'top'" }, 740 | { "key": "up", "command": "interactive.history.previous", 741 | "when": "!suggestWidgetVisible && resourceScheme == 'vscode-interactive' && interactiveInputCursorAtBoundary != 'bottom' && interactiveInputCursorAtBoundary != 'none'" }, 742 | { "key": "ctrl+end", "command": "interactive.scrollToBottom", 743 | "when": "resourceScheme == 'vscode-interactive'" }, 744 | { "key": "ctrl+home", "command": "interactive.scrollToTop", 745 | "when": "resourceScheme == 'vscode-interactive'" }, 746 | { "key": "ctrl+k i", "command": "interactiveEditor.start", 747 | "when": "interactiveEditorHasProvider && !editorReadonly" }, 748 | { "key": "ctrl+i", "command": "interactiveEditor.start", 749 | "when": "interactiveEditorHasProvider && !editorReadonly" }, 750 | { "key": "enter", "command": "keybindings.editor.acceptWhenExpression", 751 | "when": "inKeybindings && whenFocus && !suggestWidgetVisible" }, 752 | { "key": "ctrl+k ctrl+a", "command": "keybindings.editor.addKeybinding", 753 | "when": "inKeybindings && keybindingFocus" }, 754 | { "key": "escape", "command": "keybindings.editor.clearSearchResults", 755 | "when": "inKeybindings && inKeybindingsSearch" }, 756 | { "key": "ctrl+c", "command": "keybindings.editor.copyKeybindingEntry", 757 | "when": "inKeybindings && keybindingFocus && !whenFocus" }, 758 | { "key": "enter", "command": "keybindings.editor.defineKeybinding", 759 | "when": "inKeybindings && keybindingFocus && !whenFocus" }, 760 | { "key": "ctrl+k ctrl+e", "command": "keybindings.editor.defineWhenExpression", 761 | "when": "inKeybindings && keybindingFocus" }, 762 | { "key": "ctrl+down", "command": "keybindings.editor.focusKeybindings", 763 | "when": "inKeybindings && inKeybindingsSearch" }, 764 | { "key": "alt+k", "command": "keybindings.editor.recordSearchKeys", 765 | "when": "inKeybindings && inKeybindingsSearch" }, 766 | { "key": "escape", "command": "keybindings.editor.rejectWhenExpression", 767 | "when": "inKeybindings && whenFocus && !suggestWidgetVisible" }, 768 | { "key": "delete", "command": "keybindings.editor.removeKeybinding", 769 | "when": "inKeybindings && keybindingFocus && !inputFocus" }, 770 | { "key": "ctrl+f", "command": "keybindings.editor.searchKeybindings", 771 | "when": "inKeybindings" }, 772 | { "key": "alt+p", "command": "keybindings.editor.toggleSortByPrecedence", 773 | "when": "inKeybindings" }, 774 | { "key": "escape", "command": "list.clear", 775 | "when": "listFocus && listHasSelectionOrFocus && !inputFocus" }, 776 | { "key": "escape", "command": "list.closeFind", 777 | "when": "listFocus && treeFindOpen" }, 778 | { "key": "left", "command": "list.collapse", 779 | "when": "listFocus && treeElementCanCollapse && !inputFocus || listFocus && treeElementHasParent && !inputFocus" }, 780 | { "key": "ctrl+left", "command": "list.collapseAll", 781 | "when": "listFocus && !inputFocus" }, 782 | { "key": "right", "command": "list.expand", 783 | "when": "listFocus && treeElementCanExpand && !inputFocus || listFocus && treeElementHasChild && !inputFocus" }, 784 | { "key": "shift+down", "command": "list.expandSelectionDown", 785 | "when": "listFocus && listSupportsMultiselect && !inputFocus" }, 786 | { "key": "shift+up", "command": "list.expandSelectionUp", 787 | "when": "listFocus && listSupportsMultiselect && !inputFocus" }, 788 | { "key": "f3", "command": "list.find", 789 | "when": "listFocus && listSupportsFind" }, 790 | { "key": "ctrl+f", "command": "list.find", 791 | "when": "listFocus && listSupportsFind" }, 792 | { "key": "down", "command": "list.focusDown", 793 | "when": "listFocus && !inputFocus" }, 794 | { "key": "home", "command": "list.focusFirst", 795 | "when": "listFocus && !inputFocus" }, 796 | { "key": "end", "command": "list.focusLast", 797 | "when": "listFocus && !inputFocus" }, 798 | { "key": "pagedown", "command": "list.focusPageDown", 799 | "when": "listFocus && !inputFocus" }, 800 | { "key": "pageup", "command": "list.focusPageUp", 801 | "when": "listFocus && !inputFocus" }, 802 | { "key": "up", "command": "list.focusUp", 803 | "when": "listFocus && !inputFocus" }, 804 | { "key": "ctrl+down", "command": "list.scrollDown", 805 | "when": "listFocus && !inputFocus" }, 806 | { "key": "ctrl+up", "command": "list.scrollUp", 807 | "when": "listFocus && !inputFocus" }, 808 | { "key": "enter", "command": "list.select", 809 | "when": "listFocus && !inputFocus" }, 810 | { "key": "ctrl+a", "command": "list.selectAll", 811 | "when": "listFocus && listSupportsMultiselect && !inputFocus" }, 812 | { "key": "space", "command": "list.toggleExpand", 813 | "when": "listFocus && !inputFocus" }, 814 | { "key": "ctrl+shift+enter", "command": "list.toggleSelection", 815 | "when": "listFocus && !inputFocus" }, 816 | { "key": "y", "command": "notebook.cell.changeToCode", 817 | "when": "notebookEditorFocused && !inputFocus && !notebookOutputFocused && activeEditor == 'workbench.editor.notebook' && notebookCellType == 'markup'" }, 818 | { "key": "m", "command": "notebook.cell.changeToMarkdown", 819 | "when": "notebookEditorFocused && !inputFocus && !notebookOutputFocused && activeEditor == 'workbench.editor.notebook' && notebookCellType == 'code'" }, 820 | { "key": "alt+delete", "command": "notebook.cell.clearOutputs", 821 | "when": "notebookCellEditable && notebookCellHasOutputs && notebookEditable && notebookEditorFocused && !inputFocus" }, 822 | { "key": "ctrl+k ctrl+c", "command": "notebook.cell.collapseCellInput", 823 | "when": "notebookCellListFocused && !inputFocus && !notebookCellInputIsCollapsed" }, 824 | { "key": "ctrl+k t", "command": "notebook.cell.collapseCellOutput", 825 | "when": "notebookCellHasOutputs && notebookCellListFocused && !inputFocus && !notebookCellOutputIsCollapsed" }, 826 | { "key": "shift+alt+down", "command": "notebook.cell.copyDown", 827 | "when": "notebookEditorFocused && !inputFocus" }, 828 | { "key": "shift+alt+up", "command": "notebook.cell.copyUp", 829 | "when": "notebookEditorFocused && !inputFocus" }, 830 | { "key": "delete", "command": "notebook.cell.delete", 831 | "when": "notebookEditorFocused && !inputFocus" }, 832 | { "key": "shift+alt+d", "command": "notebook.cell.detectLanguage", 833 | "when": "notebookCellEditable && notebookEditable" }, 834 | { "key": "enter", "command": "notebook.cell.edit", 835 | "when": "notebookCellListFocused && notebookEditable && !inputFocus" }, 836 | { "key": "ctrl+k ctrl+c", "command": "notebook.cell.expandCellInput", 837 | "when": "notebookCellInputIsCollapsed && notebookCellListFocused" }, 838 | { "key": "ctrl+k t", "command": "notebook.cell.expandCellOutput", 839 | "when": "notebookCellListFocused && notebookCellOutputIsCollapsed" }, 840 | { "key": "ctrl+down", "command": "notebook.cell.focusInOutput", 841 | "when": "notebookCellHasOutputs && notebookEditorFocused" }, 842 | { "key": "ctrl+up", "command": "notebook.cell.focusOutOutput", 843 | "when": "notebookEditorFocused && notebookOutputFocused" }, 844 | { "key": "ctrl+shift+enter", "command": "notebook.cell.insertCodeCellAbove", 845 | "when": "notebookCellListFocused && !inputFocus" }, 846 | { "key": "ctrl+enter", "command": "notebook.cell.insertCodeCellBelow", 847 | "when": "notebookCellListFocused && !inputFocus" }, 848 | { "key": "shift+alt+win+j", "command": "notebook.cell.joinAbove", 849 | "when": "notebookEditorFocused" }, 850 | { "key": "alt+win+j", "command": "notebook.cell.joinBelow", 851 | "when": "notebookEditorFocused" }, 852 | { "key": "alt+down", "command": "notebook.cell.moveDown", 853 | "when": "notebookEditorFocused && !inputFocus" }, 854 | { "key": "alt+up", "command": "notebook.cell.moveUp", 855 | "when": "notebookEditorFocused && !inputFocus" }, 856 | { "key": "ctrl+k ctrl+shift+\\", "command": "notebook.cell.split", 857 | "when": "editorTextFocus && notebookCellEditable && notebookEditable && notebookEditorFocused" }, 858 | { "key": "ctrl+k y", "command": "notebook.cell.toggleOutputScrolling", 859 | "when": "notebookCellHasOutputs && notebookCellListFocused && !inputFocus" }, 860 | { "key": "ctrl+l", "command": "notebook.centerActiveCell", 861 | "when": "notebookEditorFocused" }, 862 | { "key": "alt+f3", "command": "notebook.diff.action.next", 863 | "when": "activeEditor == 'workbench.editor.notebookTextDiffEditor'" }, 864 | { "key": "shift+alt+f3", "command": "notebook.diff.action.previous", 865 | "when": "activeEditor == 'workbench.editor.notebookTextDiffEditor'" }, 866 | { "key": "ctrl+f", "command": "notebook.find", 867 | "when": "notebookEditorFocused && !editorFocus && activeEditor == 'workbench.editor.interactive' || notebookEditorFocused && !editorFocus && activeEditor == 'workbench.editor.notebook'" }, 868 | { "key": "ctrl+end", "command": "notebook.focusBottom", 869 | "when": "notebookEditorFocused && !inputFocus" }, 870 | { "key": "down", "command": "notebook.focusNextEditor", 871 | "when": "config.notebook.navigation.allowNavigateToSurroundingCells && notebookCursorNavigationMode && notebookEditorFocused && !accessibilityModeEnabled && !notebookCellMarkdownEditMode && notebookCellType == 'markup'" }, 872 | { "key": "ctrl+down", "command": "notebook.focusNextEditor", 873 | "when": "notebookEditorFocused && notebookOutputFocused" }, 874 | { "key": "up", "command": "notebook.focusPreviousEditor", 875 | "when": "config.notebook.navigation.allowNavigateToSurroundingCells && notebookCursorNavigationMode && notebookEditorFocused && !accessibilityModeEnabled && !notebookCellMarkdownEditMode && notebookCellType == 'markup'" }, 876 | { "key": "ctrl+home", "command": "notebook.focusTop", 877 | "when": "notebookEditorFocused && !inputFocus" }, 878 | { "key": "left", "command": "notebook.fold", 879 | "when": "notebookEditorFocused && !inputFocus && activeEditor == 'workbench.editor.notebook'" }, 880 | { "key": "ctrl+shift+[", "command": "notebook.fold", 881 | "when": "notebookEditorFocused && !inputFocus && activeEditor == 'workbench.editor.notebook'" }, 882 | { "key": "shift+alt+f", "command": "notebook.format", 883 | "when": "notebookEditable && !editorTextFocus && activeEditor == 'workbench.editor.notebook'" }, 884 | { "key": "escape", "command": "notebook.hideFind", 885 | "when": "notebookEditorFocused && notebookFindWidgetFocused" }, 886 | { "key": "right", "command": "notebook.unfold", 887 | "when": "notebookEditorFocused && !inputFocus && activeEditor == 'workbench.editor.notebook'" }, 888 | { "key": "ctrl+shift+]", "command": "notebook.unfold", 889 | "when": "notebookEditorFocused && !inputFocus && activeEditor == 'workbench.editor.notebook'" }, 890 | { "key": "ctrl+shift+a", "command": "notification.acceptPrimaryAction", 891 | "when": "notificationToastsVisible" }, 892 | { "key": "delete", "command": "notification.clear", 893 | "when": "notificationFocus" }, 894 | { "key": "left", "command": "notification.collapse", 895 | "when": "notificationFocus" }, 896 | { "key": "right", "command": "notification.expand", 897 | "when": "notificationFocus" }, 898 | { "key": "enter", "command": "notification.toggle", 899 | "when": "notificationFocus" }, 900 | { "key": "space", "command": "notification.toggle", 901 | "when": "notificationFocus" }, 902 | { "key": "home", "command": "notifications.focusFirstToast", 903 | "when": "notificationFocus && notificationToastsVisible" }, 904 | { "key": "pageup", "command": "notifications.focusFirstToast", 905 | "when": "notificationFocus && notificationToastsVisible" }, 906 | { "key": "end", "command": "notifications.focusLastToast", 907 | "when": "notificationFocus && notificationToastsVisible" }, 908 | { "key": "pagedown", "command": "notifications.focusLastToast", 909 | "when": "notificationFocus && notificationToastsVisible" }, 910 | { "key": "down", "command": "notifications.focusNextToast", 911 | "when": "notificationFocus && notificationToastsVisible" }, 912 | { "key": "up", "command": "notifications.focusPreviousToast", 913 | "when": "notificationFocus && notificationToastsVisible" }, 914 | { "key": "escape", "command": "problems.action.clearFilterText", 915 | "when": "problemsFilterFocus" }, 916 | { "key": "ctrl+c", "command": "problems.action.copy", 917 | "when": "problemsVisibility && !relatedInformationFocus && focusedView == 'workbench.panel.markers.view'" }, 918 | { "key": "ctrl+f", "command": "problems.action.focusFilter", 919 | "when": "focusedView == 'workbench.panel.markers.view'" }, 920 | { "key": "ctrl+down", "command": "problems.action.focusProblemsFromFilter", 921 | "when": "problemsFilterFocus" }, 922 | { "key": "enter", "command": "problems.action.open", 923 | "when": "problemFocus" }, 924 | { "key": "ctrl+enter", "command": "problems.action.openToSide", 925 | "when": "problemFocus" }, 926 | { "key": "ctrl+.", "command": "problems.action.showQuickFixes", 927 | "when": "problemFocus" }, 928 | { "key": "space", "command": "refactorPreview.toggleCheckedState", 929 | "when": "listFocus && refactorPreview.enabled && !inputFocus" }, 930 | { "key": "shift+alt+r", "command": "revealFileInOS", 931 | "when": "!editorFocus" }, 932 | { "key": "enter", "command": "revealReference", 933 | "when": "listFocus && referenceSearchVisible && !inputFocus && !treeElementCanCollapse && !treeElementCanExpand" }, 934 | { "key": "ctrl+k s", "command": "saveAll" }, 935 | { "key": "ctrl+enter", "command": "scm.acceptInput", 936 | "when": "scmRepository" }, 937 | { "key": "alt+down", "command": "scm.forceViewNextCommit", 938 | "when": "scmRepository" }, 939 | { "key": "alt+up", "command": "scm.forceViewPreviousCommit", 940 | "when": "scmRepository" }, 941 | { "key": "down", "command": "scm.viewNextCommit", 942 | "when": "scmInputIsInLastPosition && scmRepository && !suggestWidgetVisible" }, 943 | { "key": "up", "command": "scm.viewPreviousCommit", 944 | "when": "scmInputIsInFirstPosition && scmRepository && !suggestWidgetVisible" }, 945 | { "key": "escape", "command": "search.action.cancel", 946 | "when": "listFocus && searchViewletVisible && !inputFocus && searchState != '0'" }, 947 | { "key": "ctrl+c", "command": "search.action.copyMatch", 948 | "when": "fileMatchOrMatchFocus" }, 949 | { "key": "shift+alt+c", "command": "search.action.copyPath", 950 | "when": "fileMatchOrFolderMatchWithResourceFocus" }, 951 | { "key": "f4", "command": "search.action.focusNextSearchResult", 952 | "when": "hasSearchResult || inSearchEditor" }, 953 | { "key": "shift+f4", "command": "search.action.focusPreviousSearchResult", 954 | "when": "hasSearchResult || inSearchEditor" }, 955 | { "key": "ctrl+up", "command": "search.action.focusSearchFromResults", 956 | "when": "accessibilityModeEnabled && searchViewletVisible || firstMatchFocus && searchViewletVisible" }, 957 | { "key": "alt+enter", "command": "search.action.openInEditor", 958 | "when": "hasSearchResult && searchViewletFocus" }, 959 | { "key": "enter", "command": "search.action.openResult", 960 | "when": "fileMatchOrMatchFocus && searchViewletVisible" }, 961 | { "key": "ctrl+enter", "command": "search.action.openResultToSide", 962 | "when": "fileMatchOrMatchFocus && searchViewletVisible" }, 963 | { "key": "delete", "command": "search.action.remove", 964 | "when": "fileMatchOrMatchFocus && searchViewletVisible" }, 965 | { "key": "ctrl+shift+1", "command": "search.action.replace", 966 | "when": "isEditableItem && matchFocus && replaceActive && searchViewletVisible" }, 967 | { "key": "ctrl+alt+enter", "command": "search.action.replaceAll", 968 | "when": "replaceActive && searchViewletVisible && !findWidgetVisible" }, 969 | { "key": "ctrl+shift+enter", "command": "search.action.replaceAllInFile", 970 | "when": "fileMatchFocus && isEditableItem && replaceActive && searchViewletVisible" }, 971 | { "key": "ctrl+shift+1", "command": "search.action.replaceAllInFile", 972 | "when": "fileMatchFocus && isEditableItem && replaceActive && searchViewletVisible" }, 973 | { "key": "ctrl+shift+enter", "command": "search.action.replaceAllInFolder", 974 | "when": "folderMatchFocus && isEditableItem && replaceActive && searchViewletVisible" }, 975 | { "key": "ctrl+shift+1", "command": "search.action.replaceAllInFolder", 976 | "when": "folderMatchFocus && isEditableItem && replaceActive && searchViewletVisible" }, 977 | { "key": "shift+alt+f", "command": "search.action.restrictSearchToFolder", 978 | "when": "folderMatchWithResourceFocus && searchViewletVisible" }, 979 | { "key": "ctrl+down", "command": "search.focus.nextInputBox", 980 | "when": "inSearchEditor && inputBoxFocus || inputBoxFocus && searchViewletVisible" }, 981 | { "key": "ctrl+up", "command": "search.focus.previousInputBox", 982 | "when": "inSearchEditor && inputBoxFocus || inputBoxFocus && searchViewletVisible && !searchInputBoxFocus" }, 983 | { "key": "ctrl+shift+l", "command": "selectAllSearchEditorMatches", 984 | "when": "inSearchEditor" }, 985 | { "key": "escape", "command": "settings.action.focusLevelUp", 986 | "when": "inSettingsEditor && !inSettingsJSONEditor && !inSettingsSearch" }, 987 | { "key": "enter", "command": "settings.action.focusSettingControl", 988 | "when": "inSettingsEditor && settingRowFocus" }, 989 | { "key": "down", "command": "settings.action.focusSettingsFromSearch", 990 | "when": "inSettingsSearch && !suggestWidgetVisible" }, 991 | { "key": "enter", "command": "settings.action.focusSettingsList", 992 | "when": "inSettingsEditor && settingsTocRowFocus" }, 993 | { "key": "left", "command": "settings.action.focusTOC", 994 | "when": "inSettingsEditor && settingRowFocus" }, 995 | { "key": "shift+f9", "command": "settings.action.showContextMenu", 996 | "when": "inSettingsEditor" }, 997 | { "key": "ctrl+; ctrl+x", "command": "testing.cancelRun" }, 998 | { "key": "ctrl+; ctrl+a", "command": "testing.debugAll" }, 999 | { "key": "ctrl+; ctrl+c", "command": "testing.debugAtCursor", 1000 | "when": "editorTextFocus" }, 1001 | { "key": "ctrl+; ctrl+f", "command": "testing.debugCurrentFile", 1002 | "when": "editorTextFocus" }, 1003 | { "key": "ctrl+; ctrl+e", "command": "testing.debugFailTests" }, 1004 | { "key": "ctrl+; ctrl+l", "command": "testing.debugLastRun" }, 1005 | { "key": "ctrl+; ctrl+m", "command": "testing.openOutputPeek" }, 1006 | { "key": "ctrl+; e", "command": "testing.reRunFailTests" }, 1007 | { "key": "ctrl+; l", "command": "testing.reRunLastRun" }, 1008 | { "key": "ctrl+; ctrl+r", "command": "testing.refreshTests", 1009 | "when": "testing.canRefresh" }, 1010 | { "key": "ctrl+; a", "command": "testing.runAll" }, 1011 | { "key": "ctrl+; c", "command": "testing.runAtCursor", 1012 | "when": "editorTextFocus" }, 1013 | { "key": "ctrl+; f", "command": "testing.runCurrentFile", 1014 | "when": "editorTextFocus" }, 1015 | { "key": "ctrl+; ctrl+o", "command": "testing.showMostRecentOutput", 1016 | "when": "testing.hasAnyResults" }, 1017 | { "key": "ctrl+; ctrl+i", "command": "testing.toggleInlineTestOutput" }, 1018 | { "key": "alt+h", "command": "testing.toggleTestingPeekHistory", 1019 | "when": "testing.isPeekVisible" }, 1020 | { "key": "alt+c", "command": "toggleSearchCaseSensitive", 1021 | "when": "searchViewletFocus" }, 1022 | { "key": "alt+c", "command": "toggleSearchEditorCaseSensitive", 1023 | "when": "inSearchEditor && searchInputBoxFocus" }, 1024 | { "key": "alt+l", "command": "toggleSearchEditorContextLines", 1025 | "when": "inSearchEditor" }, 1026 | { "key": "alt+r", "command": "toggleSearchEditorRegex", 1027 | "when": "inSearchEditor && searchInputBoxFocus" }, 1028 | { "key": "alt+w", "command": "toggleSearchEditorWholeWord", 1029 | "when": "inSearchEditor && searchInputBoxFocus" }, 1030 | { "key": "alt+p", "command": "toggleSearchPreserveCase", 1031 | "when": "searchViewletFocus" }, 1032 | { "key": "alt+r", "command": "toggleSearchRegex", 1033 | "when": "searchViewletFocus" }, 1034 | { "key": "alt+w", "command": "toggleSearchWholeWord", 1035 | "when": "searchViewletFocus" }, 1036 | { "key": "ctrl+alt+win+n", "command": "welcome.showNewFileEntries" }, 1037 | { "key": "ctrl+w", "command": "workbench.action.closeActiveEditor" }, 1038 | { "key": "ctrl+f4", "command": "workbench.action.closeActiveEditor" }, 1039 | { "key": "ctrl+k ctrl+w", "command": "workbench.action.closeAllEditors" }, 1040 | { "key": "ctrl+k ctrl+shift+w", "command": "workbench.action.closeAllGroups" }, 1041 | { "key": "ctrl+k w", "command": "workbench.action.closeEditorsInGroup" }, 1042 | { "key": "ctrl+k f", "command": "workbench.action.closeFolder", 1043 | "when": "emptyWorkspaceSupport && workbenchState != 'empty'" }, 1044 | { "key": "ctrl+w", "command": "workbench.action.closeGroup", 1045 | "when": "activeEditorGroupEmpty && multipleEditorGroups" }, 1046 | { "key": "ctrl+f4", "command": "workbench.action.closeGroup", 1047 | "when": "activeEditorGroupEmpty && multipleEditorGroups" }, 1048 | { "key": "shift+escape", "command": "workbench.action.closeQuickOpen", 1049 | "when": "inQuickOpen" }, 1050 | { "key": "escape", "command": "workbench.action.closeQuickOpen", 1051 | "when": "inQuickOpen" }, 1052 | { "key": "ctrl+k u", "command": "workbench.action.closeUnmodifiedEditors" }, 1053 | { "key": "ctrl+shift+w", "command": "workbench.action.closeWindow" }, 1054 | { "key": "alt+f4", "command": "workbench.action.closeWindow" }, 1055 | { "key": "alt+f5", "command": "workbench.action.compareEditor.nextChange", 1056 | "when": "textCompareEditorVisible" }, 1057 | { "key": "ctrl+k shift+o", "command": "workbench.action.compareEditor.openSide", 1058 | "when": "inDiffEditor" }, 1059 | { "key": "shift+alt+f5", "command": "workbench.action.compareEditor.previousChange", 1060 | "when": "textCompareEditorVisible" }, 1061 | { "key": "shift+f5", "command": "workbench.action.debug.disconnect", 1062 | "when": "focusedSessionIsAttach && inDebugMode" }, 1063 | { "key": "ctrl+shift+f5", "command": "workbench.action.debug.restart", 1064 | "when": "inDebugMode" }, 1065 | { "key": "ctrl+f5", "command": "workbench.action.debug.run", 1066 | "when": "debuggersAvailable && debugState != 'initializing'" }, 1067 | { "key": "f5", "command": "workbench.action.debug.start", 1068 | "when": "debuggersAvailable && debugState == 'inactive'" }, 1069 | { "key": "ctrl+f11", "command": "workbench.action.debug.stepIntoTarget", 1070 | "when": "inDebugMode && stepIntoTargetsSupported && debugState == 'stopped'" }, 1071 | { "key": "shift+f11", "command": "workbench.action.debug.stepOut", 1072 | "when": "debugState == 'stopped'" }, 1073 | { "key": "f10", "command": "workbench.action.debug.stepOver", 1074 | "when": "debugState == 'stopped'" }, 1075 | { "key": "shift+f5", "command": "workbench.action.debug.stop", 1076 | "when": "inDebugMode && !focusedSessionIsAttach" }, 1077 | { "key": "ctrl+k m", "command": "workbench.action.editor.changeLanguageMode", 1078 | "when": "!notebookEditorFocused" }, 1079 | { "key": "ctrl+k p", "command": "workbench.action.files.copyPathOfActiveFile" }, 1080 | { "key": "ctrl+n", "command": "workbench.action.files.newUntitledFile" }, 1081 | { "key": "ctrl+o", "command": "workbench.action.files.openFile", 1082 | "when": "true" }, 1083 | { "key": "ctrl+o", "command": "workbench.action.files.openFileFolder", 1084 | "when": "isMacNative && openFolderWorkspaceSupport" }, 1085 | { "key": "ctrl+k ctrl+o", "command": "workbench.action.files.openFolder", 1086 | "when": "openFolderWorkspaceSupport" }, 1087 | { "key": "ctrl+o", "command": "workbench.action.files.openFolderViaWorkspace", 1088 | "when": "!openFolderWorkspaceSupport && workbenchState == 'workspace'" }, 1089 | { "key": "ctrl+o", "command": "workbench.action.files.openLocalFile", 1090 | "when": "remoteFileDialogVisible" }, 1091 | { "key": "ctrl+k ctrl+o", "command": "workbench.action.files.openLocalFolder", 1092 | "when": "remoteFileDialogVisible" }, 1093 | { "key": "ctrl+k r", "command": "workbench.action.files.revealActiveFileInWindows" }, 1094 | { "key": "ctrl+s", "command": "workbench.action.files.save" }, 1095 | { "key": "ctrl+shift+s", "command": "workbench.action.files.saveAs" }, 1096 | { "key": "ctrl+shift+s", "command": "workbench.action.files.saveLocalFile", 1097 | "when": "remoteFileDialogVisible" }, 1098 | { "key": "ctrl+k ctrl+shift+s", "command": "workbench.action.files.saveWithoutFormatting" }, 1099 | { "key": "ctrl+k o", "command": "workbench.action.files.showOpenedFileInNewWindow", 1100 | "when": "emptyWorkspaceSupport" }, 1101 | { "key": "ctrl+shift+f", "command": "workbench.action.findInFiles" }, 1102 | { "key": "ctrl+k ctrl+up", "command": "workbench.action.focusAboveGroup" }, 1103 | { "key": "ctrl+k ctrl+down", "command": "workbench.action.focusBelowGroup" }, 1104 | { "key": "ctrl+8", "command": "workbench.action.focusEighthEditorGroup" }, 1105 | { "key": "ctrl+5", "command": "workbench.action.focusFifthEditorGroup" }, 1106 | { "key": "ctrl+1", "command": "workbench.action.focusFirstEditorGroup" }, 1107 | { "key": "ctrl+4", "command": "workbench.action.focusFourthEditorGroup" }, 1108 | { "key": "ctrl+k ctrl+left", "command": "workbench.action.focusLeftGroup" }, 1109 | { "key": "f6", "command": "workbench.action.focusNextPart" }, 1110 | { "key": "shift+f6", "command": "workbench.action.focusPreviousPart" }, 1111 | { "key": "ctrl+k ctrl+right", "command": "workbench.action.focusRightGroup" }, 1112 | { "key": "ctrl+2", "command": "workbench.action.focusSecondEditorGroup" }, 1113 | { "key": "ctrl+7", "command": "workbench.action.focusSeventhEditorGroup" }, 1114 | { "key": "ctrl+0", "command": "workbench.action.focusSideBar" }, 1115 | { "key": "ctrl+6", "command": "workbench.action.focusSixthEditorGroup" }, 1116 | { "key": "ctrl+3", "command": "workbench.action.focusThirdEditorGroup" }, 1117 | { "key": "ctrl+g", "command": "workbench.action.gotoLine" }, 1118 | { "key": "ctrl+shift+o", "command": "workbench.action.gotoSymbol" }, 1119 | { "key": "down", "command": "workbench.action.interactivePlayground.arrowDown", 1120 | "when": "interactivePlaygroundFocus && !editorTextFocus" }, 1121 | { "key": "up", "command": "workbench.action.interactivePlayground.arrowUp", 1122 | "when": "interactivePlaygroundFocus && !editorTextFocus" }, 1123 | { "key": "pagedown", "command": "workbench.action.interactivePlayground.pageDown", 1124 | "when": "interactivePlaygroundFocus && !editorTextFocus" }, 1125 | { "key": "pageup", "command": "workbench.action.interactivePlayground.pageUp", 1126 | "when": "interactivePlaygroundFocus && !editorTextFocus" }, 1127 | { "key": "ctrl+down", "command": "workbench.action.interactiveSession.focusInput", 1128 | "when": "inInteractiveSession && !editorFocus" }, 1129 | { "key": "ctrl+k ctrl+shift+\\", "command": "workbench.action.joinEditorInGroup", 1130 | "when": "sideBySideEditorActive" }, 1131 | { "key": "ctrl+k enter", "command": "workbench.action.keepEditor" }, 1132 | { "key": "ctrl+k ctrl+r", "command": "workbench.action.keybindingsReference" }, 1133 | { "key": "ctrl+9", "command": "workbench.action.lastEditorInGroup" }, 1134 | { "key": "alt+0", "command": "workbench.action.lastEditorInGroup" }, 1135 | { "key": "ctrl+k down", "command": "workbench.action.moveActiveEditorGroupDown" }, 1136 | { "key": "ctrl+k left", "command": "workbench.action.moveActiveEditorGroupLeft" }, 1137 | { "key": "ctrl+k right", "command": "workbench.action.moveActiveEditorGroupRight" }, 1138 | { "key": "ctrl+k up", "command": "workbench.action.moveActiveEditorGroupUp" }, 1139 | { "key": "ctrl+shift+pageup", "command": "workbench.action.moveEditorLeftInGroup" }, 1140 | { "key": "ctrl+shift+pagedown", "command": "workbench.action.moveEditorRightInGroup" }, 1141 | { "key": "shift+alt+1", "command": "workbench.action.moveEditorToFirstGroup" }, 1142 | { "key": "shift+alt+9", "command": "workbench.action.moveEditorToLastGroup" }, 1143 | { "key": "ctrl+alt+right", "command": "workbench.action.moveEditorToNextGroup" }, 1144 | { "key": "ctrl+alt+left", "command": "workbench.action.moveEditorToPreviousGroup" }, 1145 | { "key": "alt+left", "command": "workbench.action.navigateBack", 1146 | "when": "canNavigateBack" }, 1147 | { "key": "alt+right", "command": "workbench.action.navigateForward", 1148 | "when": "canNavigateForward" }, 1149 | { "key": "ctrl+k ctrl+q", "command": "workbench.action.navigateToLastEditLocation" }, 1150 | { "key": "ctrl+shift+n", "command": "workbench.action.newWindow" }, 1151 | { "key": "ctrl+pagedown", "command": "workbench.action.nextEditor" }, 1152 | { "key": "ctrl+k ctrl+pagedown", "command": "workbench.action.nextEditorInGroup" }, 1153 | { "key": "alt+1", "command": "workbench.action.openEditorAtIndex1" }, 1154 | { "key": "alt+2", "command": "workbench.action.openEditorAtIndex2" }, 1155 | { "key": "alt+3", "command": "workbench.action.openEditorAtIndex3" }, 1156 | { "key": "alt+4", "command": "workbench.action.openEditorAtIndex4" }, 1157 | { "key": "alt+5", "command": "workbench.action.openEditorAtIndex5" }, 1158 | { "key": "alt+6", "command": "workbench.action.openEditorAtIndex6" }, 1159 | { "key": "alt+7", "command": "workbench.action.openEditorAtIndex7" }, 1160 | { "key": "alt+8", "command": "workbench.action.openEditorAtIndex8" }, 1161 | { "key": "alt+9", "command": "workbench.action.openEditorAtIndex9" }, 1162 | { "key": "ctrl+k ctrl+s", "command": "workbench.action.openGlobalKeybindings" }, 1163 | { "key": "ctrl+r", "command": "workbench.action.openRecent" }, 1164 | { "key": "ctrl+,", "command": "workbench.action.openSettings" }, 1165 | { "key": "ctrl+shift+u", "command": "workbench.action.output.toggleOutput", 1166 | "when": "workbench.panel.output.active" }, 1167 | { "key": "ctrl+k shift+enter", "command": "workbench.action.pinEditor", 1168 | "when": "!activeEditorIsPinned" }, 1169 | { "key": "ctrl+pageup", "command": "workbench.action.previousEditor" }, 1170 | { "key": "ctrl+k ctrl+pageup", "command": "workbench.action.previousEditorInGroup" }, 1171 | { "key": "ctrl+e", "command": "workbench.action.quickOpen" }, 1172 | { "key": "ctrl+p", "command": "workbench.action.quickOpen" }, 1173 | { "key": "ctrl+shift+tab", "command": "workbench.action.quickOpenLeastRecentlyUsedEditorInGroup", 1174 | "when": "!activeEditorGroupEmpty" }, 1175 | { "key": "ctrl+tab", "command": "workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup", 1176 | "when": "!activeEditorGroupEmpty" }, 1177 | { "key": "ctrl+q", "command": "workbench.action.quickOpenView" }, 1178 | { "key": "ctrl+alt+o", "command": "workbench.action.remote.showMenu" }, 1179 | { "key": "ctrl+shift+t", "command": "workbench.action.reopenClosedEditor" }, 1180 | { "key": "ctrl+shift+h", "command": "workbench.action.replaceInFiles" }, 1181 | { "key": "ctrl+shift+j", "command": "workbench.action.search.toggleQueryDetails", 1182 | "when": "inSearchEditor || searchViewletFocus" }, 1183 | { "key": "ctrl+k ctrl+t", "command": "workbench.action.selectTheme" }, 1184 | { "key": "ctrl+k ctrl+p", "command": "workbench.action.showAllEditors" }, 1185 | { "key": "ctrl+t", "command": "workbench.action.showAllSymbols" }, 1186 | { "key": "f1", "command": "workbench.action.showCommands" }, 1187 | { "key": "ctrl+shift+p", "command": "workbench.action.showCommands" }, 1188 | { "key": "ctrl+k ctrl+i", "command": "workbench.action.showTreeHover", 1189 | "when": "customTreeView && listFocus && !inputFocus" }, 1190 | { "key": "ctrl+\\", "command": "workbench.action.splitEditor" }, 1191 | { "key": "ctrl+k ctrl+\\", "command": "workbench.action.splitEditorDown" }, 1192 | { "key": "ctrl+k ctrl+shift+\\", "command": "workbench.action.splitEditorInGroup", 1193 | "when": "activeEditorCanSplitInGroup" }, 1194 | { "key": "ctrl+k ctrl+\\", "command": "workbench.action.splitEditorLeft" }, 1195 | { "key": "ctrl+k ctrl+\\", "command": "workbench.action.splitEditorOrthogonal" }, 1196 | { "key": "ctrl+k ctrl+\\", "command": "workbench.action.splitEditorRight" }, 1197 | { "key": "ctrl+k ctrl+\\", "command": "workbench.action.splitEditorUp" }, 1198 | { "key": "ctrl+shift+b", "command": "workbench.action.tasks.build", 1199 | "when": "taskCommandsRegistered" }, 1200 | { "key": "escape", "command": "workbench.action.terminal.clearSelection", 1201 | "when": "terminalFocus && terminalHasBeenCreated && terminalTextSelected && !terminalFindVisible || terminalFocus && terminalProcessSupported && terminalTextSelected && !terminalFindVisible" }, 1202 | { "key": "ctrl+c", "command": "workbench.action.terminal.copyAndClearSelection", 1203 | "when": "terminalFocus && terminalHasBeenCreated && terminalTextSelected || terminalFocus && terminalProcessSupported && terminalTextSelected" }, 1204 | { "key": "ctrl+shift+c", "command": "workbench.action.terminal.copySelection", 1205 | "when": "terminalFocus && terminalHasBeenCreated && terminalTextSelected || terminalFocus && terminalProcessSupported && terminalTextSelected" }, 1206 | { "key": "f3", "command": "workbench.action.terminal.findNext", 1207 | "when": "terminalFindFocused && terminalHasBeenCreated || terminalFindFocused && terminalProcessSupported || terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1208 | { "key": "shift+enter", "command": "workbench.action.terminal.findNext", 1209 | "when": "terminalFindInputFocused && terminalHasBeenCreated || terminalFindInputFocused && terminalProcessSupported" }, 1210 | { "key": "shift+f3", "command": "workbench.action.terminal.findPrevious", 1211 | "when": "terminalFindFocused && terminalHasBeenCreated || terminalFindFocused && terminalProcessSupported || terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1212 | { "key": "enter", "command": "workbench.action.terminal.findPrevious", 1213 | "when": "terminalFindInputFocused && terminalHasBeenCreated || terminalFindInputFocused && terminalProcessSupported" }, 1214 | { "key": "shift+tab", "command": "workbench.action.terminal.focusAccessibleBuffer", 1215 | "when": "accessibilityModeEnabled && terminalHasBeenCreated && terminalTabFocusMode && !terminalAccessibleBufferFocus || accessibilityModeEnabled && terminalProcessSupported && terminalTabFocusMode && !terminalAccessibleBufferFocus" }, 1216 | { "key": "ctrl+f", "command": "workbench.action.terminal.focusFind", 1217 | "when": "terminalFindFocused && terminalHasBeenCreated || terminalFindFocused && terminalProcessSupported || terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1218 | { "key": "ctrl+k ctrl+i", "command": "workbench.action.terminal.focusHover", 1219 | "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalIsOpen || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalIsOpen && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus" }, 1220 | { "key": "ctrl+pagedown", "command": "workbench.action.terminal.focusNext", 1221 | "when": "terminalFocus && terminalHasBeenCreated && !terminalEditorFocus || terminalFocus && terminalProcessSupported && !terminalEditorFocus" }, 1222 | { "key": "alt+down", "command": "workbench.action.terminal.focusNextPane", 1223 | "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1224 | { "key": "alt+right", "command": "workbench.action.terminal.focusNextPane", 1225 | "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1226 | { "key": "ctrl+pageup", "command": "workbench.action.terminal.focusPrevious", 1227 | "when": "terminalFocus && terminalHasBeenCreated && !terminalEditorFocus || terminalFocus && terminalProcessSupported && !terminalEditorFocus" }, 1228 | { "key": "alt+up", "command": "workbench.action.terminal.focusPreviousPane", 1229 | "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1230 | { "key": "alt+left", "command": "workbench.action.terminal.focusPreviousPane", 1231 | "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1232 | { "key": "ctrl+shift+\\", "command": "workbench.action.terminal.focusTabs", 1233 | "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus" }, 1234 | { "key": "ctrl+g", "command": "workbench.action.terminal.goToRecentDirectory", 1235 | "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1236 | { "key": "shift+escape", "command": "workbench.action.terminal.hideFind", 1237 | "when": "terminalFindVisible && terminalFocus && terminalHasBeenCreated || terminalFindVisible && terminalFocus && terminalProcessSupported" }, 1238 | { "key": "escape", "command": "workbench.action.terminal.hideFind", 1239 | "when": "terminalFindVisible && terminalFocus && terminalHasBeenCreated || terminalFindVisible && terminalFocus && terminalProcessSupported" }, 1240 | { "key": "ctrl+w", "command": "workbench.action.terminal.killEditor", 1241 | "when": "terminalEditorFocus && terminalFocus && terminalHasBeenCreated && resourceScheme == 'vscode-terminal' || terminalEditorFocus && terminalFocus && terminalProcessSupported && resourceScheme == 'vscode-terminal'" }, 1242 | { "key": "ctrl+f4", "command": "workbench.action.terminal.killEditor", 1243 | "when": "terminalEditorFocus && terminalFocus && terminalHasBeenCreated && resourceScheme == 'vscode-terminal' || terminalEditorFocus && terminalFocus && terminalProcessSupported && resourceScheme == 'vscode-terminal'" }, 1244 | { "key": "delete", "command": "workbench.action.terminal.killInstance", 1245 | "when": "terminalHasBeenCreated && terminalTabsFocus || terminalIsOpen && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus" }, 1246 | { "key": "ctrl+shift+`", "command": "workbench.action.terminal.new", 1247 | "when": "terminalProcessSupported || terminalWebExtensionContributedProfile" }, 1248 | { "key": "ctrl+shift+c", "command": "workbench.action.terminal.openNativeConsole", 1249 | "when": "!terminalFocus" }, 1250 | { "key": "ctrl+shift+v", "command": "workbench.action.terminal.paste", 1251 | "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1252 | { "key": "ctrl+v", "command": "workbench.action.terminal.paste", 1253 | "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1254 | { "key": "f2", "command": "workbench.action.terminal.renameInstance", 1255 | "when": "terminalHasBeenCreated && terminalTabsFocus && terminalTabsSingularSelection || terminalProcessSupported && terminalTabsFocus && terminalTabsSingularSelection" }, 1256 | { "key": "ctrl+r", "command": "workbench.action.terminal.runRecentCommand", 1257 | "when": "accessibilityModeEnabled && terminalFocus && terminalHasBeenCreated || accessibilityModeEnabled && terminalFocus && terminalProcessSupported" }, 1258 | { "key": "ctrl+alt+r", "command": "workbench.action.terminal.runRecentCommand", 1259 | "when": "terminalFocus && terminalHasBeenCreated && !accessibilityModeEnabled || terminalFocus && terminalProcessSupported && !accessibilityModeEnabled" }, 1260 | { "key": "ctrl+alt+pagedown", "command": "workbench.action.terminal.scrollDown", 1261 | "when": "terminalFocus && terminalHasBeenCreated && !terminalAltBufferActive || terminalFocus && terminalProcessSupported && !terminalAltBufferActive" }, 1262 | { "key": "shift+pagedown", "command": "workbench.action.terminal.scrollDownPage", 1263 | "when": "terminalFocus && terminalHasBeenCreated && !terminalAltBufferActive || terminalFocus && terminalProcessSupported && !terminalAltBufferActive" }, 1264 | { "key": "ctrl+end", "command": "workbench.action.terminal.scrollToBottom", 1265 | "when": "terminalFocus && terminalHasBeenCreated && !terminalAltBufferActive || terminalFocus && terminalProcessSupported && !terminalAltBufferActive" }, 1266 | { "key": "ctrl+down", "command": "workbench.action.terminal.scrollToNextCommand", 1267 | "when": "terminalFocus && terminalHasBeenCreated && !accessibilityModeEnabled || terminalFocus && terminalProcessSupported && !accessibilityModeEnabled" }, 1268 | { "key": "ctrl+up", "command": "workbench.action.terminal.scrollToPreviousCommand", 1269 | "when": "terminalFocus && terminalHasBeenCreated && !accessibilityModeEnabled || terminalFocus && terminalProcessSupported && !accessibilityModeEnabled" }, 1270 | { "key": "ctrl+home", "command": "workbench.action.terminal.scrollToTop", 1271 | "when": "terminalFocus && terminalHasBeenCreated && !terminalAltBufferActive || terminalFocus && terminalProcessSupported && !terminalAltBufferActive" }, 1272 | { "key": "ctrl+alt+pageup", "command": "workbench.action.terminal.scrollUp", 1273 | "when": "terminalFocus && terminalHasBeenCreated && !terminalAltBufferActive || terminalFocus && terminalProcessSupported && !terminalAltBufferActive" }, 1274 | { "key": "shift+pageup", "command": "workbench.action.terminal.scrollUpPage", 1275 | "when": "terminalFocus && terminalHasBeenCreated && !terminalAltBufferActive || terminalFocus && terminalProcessSupported && !terminalAltBufferActive" }, 1276 | { "key": "ctrl+shift+down", "command": "workbench.action.terminal.selectToNextCommand", 1277 | "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1278 | { "key": "ctrl+shift+up", "command": "workbench.action.terminal.selectToPreviousCommand", 1279 | "when": "terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1280 | { "key": "ctrl+v", "command": "workbench.action.terminal.sendSequence", 1281 | "when": "terminalFocus && !accessibilityModeEnabled && terminalShellType == 'pwsh'", 1282 | "args": {"text":"\u0016"} }, 1283 | { "key": "ctrl+space", "command": "workbench.action.terminal.sendSequence", 1284 | "when": "terminalFocus && terminalShellIntegrationEnabled && !accessibilityModeEnabled && terminalShellType == 'pwsh'", 1285 | "args": {"text":"\u001b[24~a"} }, 1286 | { "key": "alt+space", "command": "workbench.action.terminal.sendSequence", 1287 | "when": "terminalFocus && terminalShellIntegrationEnabled && !accessibilityModeEnabled && terminalShellType == 'pwsh'", 1288 | "args": {"text":"\u001b[24~b"} }, 1289 | { "key": "shift+enter", "command": "workbench.action.terminal.sendSequence", 1290 | "when": "terminalFocus && terminalShellIntegrationEnabled && !accessibilityModeEnabled && terminalShellType == 'pwsh'", 1291 | "args": {"text":"\u001b[24~c"} }, 1292 | { "key": "ctrl+space", "command": "workbench.action.terminal.sendSequence", 1293 | "when": "config.terminal.integrated.shellIntegration.suggestEnabled && terminalFocus && terminalShellIntegrationEnabled && !accessibilityModeEnabled && terminalShellType == 'pwsh'", 1294 | "args": {"text":"\u001b[24~e"} }, 1295 | { "key": "ctrl+alt+r", "command": "workbench.action.terminal.sendSequence", 1296 | "when": "accessibilityModeEnabled && terminalFocus", 1297 | "args": {"text":"\u0012"} }, 1298 | { "key": "ctrl+alt+g", "command": "workbench.action.terminal.sendSequence", 1299 | "when": "terminalFocus", 1300 | "args": {"text":"\u0007"} }, 1301 | { "key": "ctrl+backspace", "command": "workbench.action.terminal.sendSequence", 1302 | "when": "terminalFocus", 1303 | "args": {"text":"\u0017"} }, 1304 | { "key": "ctrl+backspace", "command": "workbench.action.terminal.sendSequence", 1305 | "when": "terminalFocus && terminalShellType == 'cmd'", 1306 | "args": {"text":"\b"} }, 1307 | { "key": "ctrl+delete", "command": "workbench.action.terminal.sendSequence", 1308 | "when": "terminalFocus", 1309 | "args": {"text":"\u001bd"} }, 1310 | { "key": "ctrl+shift+2", "command": "workbench.action.terminal.sendSequence", 1311 | "when": "terminalFocus", 1312 | "args": {"text":"\u0000"} }, 1313 | { "key": "ctrl+shift+6", "command": "workbench.action.terminal.sendSequence", 1314 | "when": "terminalFocus", 1315 | "args": {"text":"\u001e"} }, 1316 | { "key": "ctrl+/", "command": "workbench.action.terminal.sendSequence", 1317 | "when": "terminalFocus", 1318 | "args": {"text":"\u001f"} }, 1319 | { "key": "alt+f1", "command": "workbench.action.terminal.showAccessibilityHelp", 1320 | "when": "terminalFocus && terminalProcessSupported" }, 1321 | { "key": "ctrl+.", "command": "workbench.action.terminal.showQuickFixes", 1322 | "when": "terminalFocus" }, 1323 | { "key": "alt+z", "command": "workbench.action.terminal.sizeToContentWidth", 1324 | "when": "terminalFocus && terminalHasBeenCreated && terminalIsOpen || terminalFocus && terminalIsOpen && terminalProcessSupported" }, 1325 | { "key": "ctrl+shift+5", "command": "workbench.action.terminal.split", 1326 | "when": "terminalFocus && terminalProcessSupported || terminalFocus && terminalWebExtensionContributedProfile" }, 1327 | { "key": "ctrl+shift+5", "command": "workbench.action.terminal.splitInstance", 1328 | "when": "terminalProcessSupported && terminalTabsFocus" }, 1329 | { "key": "alt+c", "command": "workbench.action.terminal.toggleFindCaseSensitive", 1330 | "when": "terminalFindFocused && terminalHasBeenCreated || terminalFindFocused && terminalProcessSupported || terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1331 | { "key": "alt+r", "command": "workbench.action.terminal.toggleFindRegex", 1332 | "when": "terminalFindFocused && terminalHasBeenCreated || terminalFindFocused && terminalProcessSupported || terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1333 | { "key": "alt+w", "command": "workbench.action.terminal.toggleFindWholeWord", 1334 | "when": "terminalFindFocused && terminalHasBeenCreated || terminalFindFocused && terminalProcessSupported || terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported" }, 1335 | { "key": "ctrl+`", "command": "workbench.action.terminal.toggleTerminal", 1336 | "when": "terminal.active" }, 1337 | { "key": "ctrl+alt+b", "command": "workbench.action.toggleAuxiliaryBar" }, 1338 | { "key": "shift+alt+0", "command": "workbench.action.toggleEditorGroupLayout" }, 1339 | { "key": "f11", "command": "workbench.action.toggleFullScreen", 1340 | "when": "!isIOS" }, 1341 | { "key": "ctrl+j", "command": "workbench.action.togglePanel" }, 1342 | { "key": "ctrl+b", "command": "workbench.action.toggleSidebarVisibility" }, 1343 | { "key": "ctrl+k z", "command": "workbench.action.toggleZenMode" }, 1344 | { "key": "ctrl+k shift+enter", "command": "workbench.action.unpinEditor", 1345 | "when": "activeEditorIsPinned" }, 1346 | { "key": "ctrl+numpad_add", "command": "workbench.action.zoomIn" }, 1347 | { "key": "ctrl+shift+=", "command": "workbench.action.zoomIn" }, 1348 | { "key": "ctrl+=", "command": "workbench.action.zoomIn" }, 1349 | { "key": "ctrl+numpad_subtract", "command": "workbench.action.zoomOut" }, 1350 | { "key": "ctrl+shift+-", "command": "workbench.action.zoomOut" }, 1351 | { "key": "ctrl+-", "command": "workbench.action.zoomOut" }, 1352 | { "key": "ctrl+numpad0", "command": "workbench.action.zoomReset" }, 1353 | { "key": "ctrl+shift+m", "command": "workbench.actions.view.problems", 1354 | "when": "workbench.panel.markers.view.active" }, 1355 | { "key": "escape", "command": "workbench.banner.focusBanner", 1356 | "when": "bannerFocused" }, 1357 | { "key": "down", "command": "workbench.banner.focusNextAction", 1358 | "when": "bannerFocused" }, 1359 | { "key": "right", "command": "workbench.banner.focusNextAction", 1360 | "when": "bannerFocused" }, 1361 | { "key": "up", "command": "workbench.banner.focusPreviousAction", 1362 | "when": "bannerFocused" }, 1363 | { "key": "left", "command": "workbench.banner.focusPreviousAction", 1364 | "when": "bannerFocused" }, 1365 | { "key": "ctrl+shift+y", "command": "workbench.debug.action.toggleRepl", 1366 | "when": "workbench.panel.repl.view.active" }, 1367 | { "key": "ctrl+k c", "command": "workbench.files.action.compareWithClipboard" }, 1368 | { "key": "ctrl+k d", "command": "workbench.files.action.compareWithSaved" }, 1369 | { "key": "ctrl+k e", "command": "workbench.files.action.focusOpenEditorsView", 1370 | "when": "workbench.explorer.openEditorsView.active" }, 1371 | { "key": "escape", "command": "workbench.statusBar.clearFocus", 1372 | "when": "statusBarFocused" }, 1373 | { "key": "home", "command": "workbench.statusBar.focusFirst", 1374 | "when": "statusBarFocused" }, 1375 | { "key": "end", "command": "workbench.statusBar.focusLast", 1376 | "when": "statusBarFocused" }, 1377 | { "key": "down", "command": "workbench.statusBar.focusNext", 1378 | "when": "statusBarFocused" }, 1379 | { "key": "right", "command": "workbench.statusBar.focusNext", 1380 | "when": "statusBarFocused" }, 1381 | { "key": "up", "command": "workbench.statusBar.focusPrevious", 1382 | "when": "statusBarFocused" }, 1383 | { "key": "left", "command": "workbench.statusBar.focusPrevious", 1384 | "when": "statusBarFocused" }, 1385 | { "key": "ctrl+shift+d", "command": "workbench.view.debug", 1386 | "when": "viewContainer.workbench.view.debug.enabled" }, 1387 | { "key": "ctrl+shift+e", "command": "workbench.view.explorer", 1388 | "when": "viewContainer.workbench.view.explorer.enabled" }, 1389 | { "key": "ctrl+shift+x", "command": "workbench.view.extensions", 1390 | "when": "viewContainer.workbench.view.extensions.enabled" }, 1391 | { "key": "ctrl+shift+g", "command": "workbench.view.scm", 1392 | "when": "workbench.scm.active" }, 1393 | { "key": "ctrl+shift+f", "command": "workbench.view.search", 1394 | "when": "workbench.view.search.active && neverMatch =~ /doesNotMatch/" }, 1395 | { "key": "ctrl+right", "command": "breadcrumbs.focusNextWithPicker", 1396 | "when": "breadcrumbsActive && breadcrumbsVisible && listFocus && !inputFocus" }, 1397 | { "key": "ctrl+left", "command": "breadcrumbs.focusPreviousWithPicker", 1398 | "when": "breadcrumbsActive && breadcrumbsVisible && listFocus && !inputFocus" }, 1399 | { "key": "escape", "command": "breadcrumbs.selectEditor", 1400 | "when": "breadcrumbsActive && breadcrumbsVisible" }, 1401 | { "key": "ctrl+k down", "command": "views.moveViewDown", 1402 | "when": "focusedView != ''" }, 1403 | { "key": "ctrl+k left", "command": "views.moveViewLeft", 1404 | "when": "focusedView != ''" }, 1405 | { "key": "ctrl+k right", "command": "views.moveViewRight", 1406 | "when": "focusedView != ''" }, 1407 | { "key": "ctrl+k up", "command": "views.moveViewUp", 1408 | "when": "focusedView != ''" }, 1409 | { "key": "ctrl+pagedown", "command": "workbench.action.debug.nextConsole", 1410 | "when": "inDebugRepl" }, 1411 | { "key": "ctrl+pageup", "command": "workbench.action.debug.prevConsole", 1412 | "when": "inDebugRepl" }, 1413 | { "key": "tab", "command": "workbench.action.terminal.acceptSelectedSuggestion", 1414 | "when": "terminalFocus && terminalHasBeenCreated && terminalIsOpen && terminalSuggestWidgetVisible || terminalFocus && terminalIsOpen && terminalProcessSupported && terminalSuggestWidgetVisible" }, 1415 | { "key": "enter", "command": "workbench.action.terminal.acceptSelectedSuggestion", 1416 | "when": "terminalFocus && terminalHasBeenCreated && terminalIsOpen && terminalSuggestWidgetVisible || terminalFocus && terminalIsOpen && terminalProcessSupported && terminalSuggestWidgetVisible" }, 1417 | { "key": "escape", "command": "workbench.action.terminal.hideSuggestWidget", 1418 | "when": "terminalFocus && terminalHasBeenCreated && terminalIsOpen && terminalSuggestWidgetVisible || terminalFocus && terminalIsOpen && terminalProcessSupported && terminalSuggestWidgetVisible" }, 1419 | { "key": "ctrl+shift+o", "command": "workbench.action.terminal.openDetectedLink", 1420 | "when": "terminalFocus && terminalHasBeenCreated" }, 1421 | { "key": "pagedown", "command": "workbench.action.terminal.selectNextPageSuggestion", 1422 | "when": "terminalFocus && terminalHasBeenCreated && terminalIsOpen && terminalSuggestWidgetVisible || terminalFocus && terminalIsOpen && terminalProcessSupported && terminalSuggestWidgetVisible" }, 1423 | { "key": "down", "command": "workbench.action.terminal.selectNextSuggestion", 1424 | "when": "terminalFocus && terminalHasBeenCreated && terminalIsOpen && terminalSuggestWidgetVisible || terminalFocus && terminalIsOpen && terminalProcessSupported && terminalSuggestWidgetVisible" }, 1425 | { "key": "pageup", "command": "workbench.action.terminal.selectPrevPageSuggestion", 1426 | "when": "terminalFocus && terminalHasBeenCreated && terminalIsOpen && terminalSuggestWidgetVisible || terminalFocus && terminalIsOpen && terminalProcessSupported && terminalSuggestWidgetVisible" }, 1427 | { "key": "up", "command": "workbench.action.terminal.selectPrevSuggestion", 1428 | "when": "terminalFocus && terminalHasBeenCreated && terminalIsOpen && terminalSuggestWidgetVisible || terminalFocus && terminalIsOpen && terminalProcessSupported && terminalSuggestWidgetVisible" }, 1429 | { "key": "f6", "command": "workbench.action.debug.pause", 1430 | "when": "debugState == 'running'" }, 1431 | { "key": "ctrl+down", "command": "workbench.action.terminal.accessibleBufferGoToNextCommand", 1432 | "when": "terminalAccessibleBufferFocus || terminalAccessibleBufferFocus && terminalHasBeenCreated || terminalAccessibleBufferFocus && terminalProcessSupported" }, 1433 | { "key": "ctrl+up", "command": "workbench.action.terminal.accessibleBufferGoToPreviousCommand", 1434 | "when": "terminalAccessibleBufferFocus && terminalHasBeenCreated || terminalAccessibleBufferFocus && terminalProcessSupported" }, 1435 | { "key": "ctrl+shift+o", "command": "workbench.action.terminal.navigateAccessibleBuffer", 1436 | "when": "terminalAccessibleBufferFocus && terminalHasBeenCreated || terminalAccessibleBufferFocus && terminalProcessSupported" }, 1437 | { "key": "f2", "command": "debug.renameWatchExpression", 1438 | "when": "watchExpressionsFocused" }, 1439 | { "key": "f2", "command": "debug.setVariable", 1440 | "when": "variablesFocused" }, 1441 | { "key": "space", "command": "debug.toggleBreakpoint", 1442 | "when": "breakpointsFocused && !inputFocus" }, 1443 | { "key": "shift+delete", "command": "deleteFile", 1444 | "when": "filesExplorerFocus && foldersViewVisible && !explorerResourceReadonly && !inputFocus" }, 1445 | { "key": "delete", "command": "deleteFile", 1446 | "when": "filesExplorerFocus && foldersViewVisible && !explorerResourceMoveableToTrash && !explorerResourceReadonly && !inputFocus" }, 1447 | { "key": "escape", "command": "editor.closeCallHierarchy", 1448 | "when": "callHierarchyVisible && !config.editor.stablePeek" }, 1449 | { "key": "escape", "command": "editor.closeTypeHierarchy", 1450 | "when": "typeHierarchyVisible && !config.editor.stablePeek" }, 1451 | { "key": "enter", "command": "explorer.openAndPassFocus", 1452 | "when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsFolder && !inputFocus" }, 1453 | { "key": "escape", "command": "filesExplorer.cancelCut", 1454 | "when": "explorerResourceCut && filesExplorerFocus && foldersViewVisible && !inputFocus" }, 1455 | { "key": "ctrl+c", "command": "filesExplorer.copy", 1456 | "when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !inputFocus" }, 1457 | { "key": "ctrl+x", "command": "filesExplorer.cut", 1458 | "when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus" }, 1459 | { "key": "space", "command": "filesExplorer.openFilePreserveFocus", 1460 | "when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsFolder && !inputFocus" }, 1461 | { "key": "ctrl+v", "command": "filesExplorer.paste", 1462 | "when": "filesExplorerFocus && foldersViewVisible && !explorerResourceReadonly && !inputFocus" }, 1463 | { "key": "home", "command": "firstCompressedFolder", 1464 | "when": "explorerViewletCompressedFocus && filesExplorerFocus && foldersViewVisible && !explorerViewletCompressedFirstFocus && !inputFocus" }, 1465 | { "key": "end", "command": "lastCompressedFolder", 1466 | "when": "explorerViewletCompressedFocus && filesExplorerFocus && foldersViewVisible && !explorerViewletCompressedLastFocus && !inputFocus" }, 1467 | { "key": "delete", "command": "moveFileToTrash", 1468 | "when": "explorerResourceMoveableToTrash && filesExplorerFocus && foldersViewVisible && !explorerResourceReadonly && !inputFocus" }, 1469 | { "key": "right", "command": "nextCompressedFolder", 1470 | "when": "explorerViewletCompressedFocus && filesExplorerFocus && foldersViewVisible && !explorerViewletCompressedLastFocus && !inputFocus" }, 1471 | { "key": "left", "command": "previousCompressedFolder", 1472 | "when": "explorerViewletCompressedFocus && filesExplorerFocus && foldersViewVisible && !explorerViewletCompressedFirstFocus && !inputFocus" }, 1473 | { "key": "delete", "command": "remote.tunnel.closeInline", 1474 | "when": "tunnelCloseable && tunnelViewFocus" }, 1475 | { "key": "ctrl+c", "command": "remote.tunnel.copyAddressInline", 1476 | "when": "tunnelViewFocus && tunnelType == 'Detected' && tunnelViewMultiSelection == 'undefined' || tunnelViewFocus && tunnelType == 'Forwarded' && tunnelViewMultiSelection == 'undefined'" }, 1477 | { "key": "f2", "command": "remote.tunnel.label", 1478 | "when": "tunnelViewFocus && tunnelType == 'Forwarded' && tunnelViewMultiSelection == 'undefined'" }, 1479 | { "key": "f2", "command": "renameFile", 1480 | "when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus" }, 1481 | { "key": "f5", "command": "workbench.action.debug.continue", 1482 | "when": "debugState == 'stopped'" }, 1483 | { "key": "f11", "command": "workbench.action.debug.stepInto", 1484 | "when": "debugState != 'inactive'" }, 1485 | { "key": "shift+escape", "command": "closeReferenceSearch", 1486 | "when": "referenceSearchVisible && !config.editor.stablePeek" }, 1487 | { "key": "escape", "command": "closeReferenceSearch", 1488 | "when": "referenceSearchVisible && !config.editor.stablePeek" }, 1489 | { "key": "escape", "command": "notifications.hideList", 1490 | "when": "notificationCenterVisible" }, 1491 | { "key": "alt+left", "command": "workbench.action.quickInputBack", 1492 | "when": "inQuickOpen" }, 1493 | { "key": "ctrl+tab", "command": "workbench.action.quickOpenNavigateNextInEditorPicker", 1494 | "when": "inEditorsPicker && inQuickOpen" }, 1495 | { "key": "ctrl+e", "command": "workbench.action.quickOpenNavigateNextInFilePicker", 1496 | "when": "inFilesPicker && inQuickOpen" }, 1497 | { "key": "ctrl+p", "command": "workbench.action.quickOpenNavigateNextInFilePicker", 1498 | "when": "inFilesPicker && inQuickOpen" }, 1499 | { "key": "ctrl+r", "command": "workbench.action.quickOpenNavigateNextInRecentFilesPicker", 1500 | "when": "inQuickOpen && inRecentFilesPicker" }, 1501 | { "key": "ctrl+q", "command": "workbench.action.quickOpenNavigateNextInViewPicker", 1502 | "when": "inQuickOpen && inViewsPicker" }, 1503 | { "key": "ctrl+shift+tab", "command": "workbench.action.quickOpenNavigatePreviousInEditorPicker", 1504 | "when": "inEditorsPicker && inQuickOpen" }, 1505 | { "key": "ctrl+shift+e", "command": "workbench.action.quickOpenNavigatePreviousInFilePicker", 1506 | "when": "inFilesPicker && inQuickOpen" }, 1507 | { "key": "ctrl+shift+p", "command": "workbench.action.quickOpenNavigatePreviousInFilePicker", 1508 | "when": "inFilesPicker && inQuickOpen" }, 1509 | { "key": "ctrl+shift+r", "command": "workbench.action.quickOpenNavigatePreviousInRecentFilesPicker", 1510 | "when": "inQuickOpen && inRecentFilesPicker" }, 1511 | { "key": "ctrl+shift+q", "command": "workbench.action.quickOpenNavigatePreviousInViewPicker", 1512 | "when": "inQuickOpen && inViewsPicker" }, 1513 | { "key": "ctrl+r", "command": "workbench.action.reloadWindow", 1514 | "when": "isDevelopment" }, 1515 | { "key": "ctrl+shift+f", "command": "workbench.action.terminal.searchWorkspace", 1516 | "when": "terminalFocus && terminalProcessSupported && terminalTextSelected" }, 1517 | { "key": "ctrl+shift+i", "command": "workbench.action.toggleDevTools", 1518 | "when": "isDevelopment" }, 1519 | { "key": "escape", "command": "notifications.hideToasts", 1520 | "when": "notificationFocus && notificationToastsVisible" }, 1521 | { "key": "f10", "command": "extension.node-debug.startWithStopOnEntry", 1522 | "when": "!inDebugMode && debugConfigurationType == 'node' || !inDebugMode && debugConfigurationType == 'pwa-extensionHost' || !inDebugMode && debugConfigurationType == 'pwa-node'" }, 1523 | { "key": "ctrl+k ctrl+alt+s", "command": "git.stageSelectedRanges", 1524 | "when": "isInDiffEditor && !operationInProgress" }, 1525 | { "key": "ctrl+shift+v", "command": "markdown.showPreview", 1526 | "when": "!notebookEditorFocused && editorLangId == 'markdown'" }, 1527 | { "key": "shift+alt+f12", "command": "references-view.findReferences", 1528 | "when": "editorHasReferenceProvider" }, 1529 | { "key": "f11", "command": "extension.node-debug.startWithStopOnEntry", 1530 | "when": "!inDebugMode && activeViewlet == 'workbench.view.debug' && debugConfigurationType == 'node' || !inDebugMode && activeViewlet == 'workbench.view.debug' && debugConfigurationType == 'pwa-extensionHost' || !inDebugMode && activeViewlet == 'workbench.view.debug' && debugConfigurationType == 'pwa-node'" }, 1531 | { "key": "ctrl+k ctrl+n", "command": "git.unstageSelectedRanges", 1532 | "when": "isInDiffEditor && !operationInProgress" }, 1533 | { "key": "ctrl+k v", "command": "markdown.showPreviewToSide", 1534 | "when": "!notebookEditorFocused && editorLangId == 'markdown'" }, 1535 | { "key": "f4", "command": "references-view.next", 1536 | "when": "reference-list.hasResult && references-view.canNavigate" }, 1537 | { "key": "ctrl+k ctrl+r", "command": "git.revertSelectedRanges", 1538 | "when": "isInDiffEditor && !operationInProgress" }, 1539 | { "key": "shift+f4", "command": "references-view.prev", 1540 | "when": "reference-list.hasResult && references-view.canNavigate" }, 1541 | { "key": "shift+alt+h", "command": "references-view.showCallHierarchy", 1542 | "when": "editorHasCallHierarchyProvider" }, 1543 | { "key": "ctrl+.", "command": "acceptSelectedCodeAction", 1544 | "when": "codeActionMenuVisible" }, 1545 | { "key": "enter", "command": "acceptSelectedCodeAction", 1546 | "when": "codeActionMenuVisible" }, 1547 | { "key": "shift+escape", "command": "hideCodeActionWidget", 1548 | "when": "codeActionMenuVisible" }, 1549 | { "key": "escape", "command": "hideCodeActionWidget", 1550 | "when": "codeActionMenuVisible" }, 1551 | { "key": "ctrl+enter", "command": "previewSelectedCodeAction", 1552 | "when": "codeActionMenuVisible" }, 1553 | { "key": "ctrl+down", "command": "selectNextCodeAction", 1554 | "when": "codeActionMenuVisible" }, 1555 | { "key": "down", "command": "selectNextCodeAction", 1556 | "when": "codeActionMenuVisible" }, 1557 | { "key": "ctrl+up", "command": "selectPrevCodeAction", 1558 | "when": "codeActionMenuVisible" }, 1559 | { "key": "up", "command": "selectPrevCodeAction", 1560 | "when": "codeActionMenuVisible" } 1561 | ] 1562 | } 1563 | } 1564 | -------------------------------------------------------------------------------- /publishing.txt: -------------------------------------------------------------------------------- 1 | publishing.txt 2 | 3 | These are my personal notes on testing and publishing this extension. 4 | They are mainly for my personal reference but possibly of use to someone 5 | else helping out with development activities. 6 | 7 | Reference Links 8 | --------------- 9 | 10 | Guide to writing and publishing extensions: 11 | 12 | https://code.visualstudio.com/api/working-with-extensions/publishing-extension 13 | 14 | 15 | Packaging 16 | --------- 17 | 18 | To package the extension for local testing, make sure the version has 19 | been bumped in package.json, then in a COMMAND PROMPT window (the 20 | tools do not work from a cygwin window): 21 | 22 | D:\wrk\vscode\default-keys-windows>set PATH=%PATH%;d:\opt\node-v18.16.0 23 | 24 | D:\wrk\vscode\default-keys-windows>npm install -g vsce 25 | 26 | D:\wrk\vscode\default-keys-windows>vsce package 27 | DONE Packaged: D:\wrk\vscode\default-keys-windows\default-keys-windows-0.0.5.vsix (14 files, 116.85KB) 28 | 29 | Local Testing 30 | ------------- 31 | 32 | Copy the VSIX file to the Linux test VM. 33 | 34 | On the Linux VM, open the Extensions area via button on left edge, then 35 | choose "Install from VSIX ..." from the "..." menu. Choose the VSIX file 36 | then restart VSCode. 37 | 38 | Check that the new bindings appear in the key bindings list and work in 39 | the editor. The main one I test with is Ctrl+Shift+Alt+Down, which on 40 | Windows creates a multi-line column selection. Without this extension, 41 | on Linux it would instead duplicate the current line, but with this 42 | extension, also creates a multi-line column selection. 43 | 44 | Beware: Some Linux desktop environments eat these key combinations! 45 | See README.md for workarounds. 46 | 47 | Publishing 48 | ---------- 49 | 50 | Make sure version has been bumped in package.json and README.md and an 51 | entry added to CHANGELOG.md. 52 | 53 | Log in to https://dev.azure.com/smcpeak/ with MS credentials. 54 | Go to User Settings (top right), Personal Access Tokens. 55 | Click New Token. 56 | Give it a name like "token-2020-05-18". 57 | Set Organization to "All accessible organizations". 58 | Ensure scope is "Custom defined". 59 | Click "Show all scopes". 60 | Scroll down to "Marketplace" and check "Acquire" and "Manage". 61 | Click "Create". 62 | Copy to clipboard, save to a file. 63 | Close window with the token. 64 | 65 | At the COMMAND PROMPT window: 66 | 67 | D:\wrk\vscode\default-keys-windows>vsce publish -p 68 | 69 | where is the actual token (paste with Ctrl+V). 70 | 71 | Test Installation from Marketplace 72 | ---------------------------------- 73 | 74 | Check that the new version is visible at 75 | https://marketplace.visualstudio.com/items?itemName=smcpeak.default-keys-windows 76 | 77 | Go to Linux test VM. 78 | Uninstall the version that was installed from VSIX. 79 | Restart VSCode. 80 | In extensions, search for "Windows Default Keybindings". 81 | Should see new version there. 82 | Install and test with Ctrl+Shift+Alt+Down. 83 | 84 | Publish on Github 85 | ----------------- 86 | 87 | Tag and push, e.g.: 88 | 89 | $ git tag v0.0.5 90 | $ git push 91 | $ git push origin v0.0.5 92 | 93 | Go to Releases: 94 | https://github.com/smcpeak/vscode-default-keys-windows/releases 95 | 96 | Draft new release, name like vscode-default-keys-windows-0.0.5. 97 | Select tag. 98 | Copy CHANGELOG.md fragment. 99 | Attach VSIX file. 100 | 2022-08-31: Github now refuses to allow VSIX files to be attached, 101 | so rename it to ZIP first. 102 | Publish. 103 | 104 | Publish on open-vsx 105 | ------------------- 106 | 107 | Instructions: https://github.com/eclipse/openvsx/wiki/Publishing-Extensions 108 | 109 | Command to publish; run at command prompt: 110 | 111 | > npx ovsx publish default-keys-windows-0.0.5.vsix -p 112 | 113 | where is an access token I might have already in a file, otherwise 114 | need to log in to using Github OAuth at https://open-vsx.org to create a 115 | token. 116 | 117 | URL to check: https://open-vsx.org/extension/smcpeak/default-keys-windows 118 | 119 | 120 | EOF 121 | -------------------------------------------------------------------------------- /reference/README.md: -------------------------------------------------------------------------------- 1 | This directory has, for reference, saved copies of the output of 2 | "Preferences: Open Default Keyboard Shortcuts (JSON)" for each of 3 | several platforms. 4 | -------------------------------------------------------------------------------- /vsc-extension-quickstart.md: -------------------------------------------------------------------------------- 1 | # Welcome to your VS Code Extension 2 | 3 | ## What's in the folder 4 | 5 | * This folder contains all of the files necessary for your extension pack. 6 | * `package.json` - this is the manifest file that defines the list of keybindings of the extension. 7 | 8 | ## Get up and running straight away 9 | 10 | * Press `F5` to open a new window with your extension loaded. 11 | * Press `Ctrl + .` instead of `Ctrl + Shift + P` 12 | * Verify that it will launch the Command Palette listing all available commands. The `Ctrl + .` keyboard shortcut was added as an example to you. 13 | 14 | ## Make changes 15 | 16 | * You can relaunch the extension from the debug toolbar after making changes to the files listed above. 17 | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes. 18 | 19 | ## Install your extension 20 | 21 | * To start using your extension with Visual Studio Code copy it into the `/.vscode/extensions` folder and restart Code. 22 | * To share your extension with the world, read on https://code.visualstudio.com/docs about publishing an extension. 23 | --------------------------------------------------------------------------------