├── .gitignore ├── .github ├── assignment.yml ├── locker.yml └── needs_more_info.yml ├── atom-keyboard.png ├── contributions_list.png ├── atom-keyboard-padded.png ├── .vscodeignore ├── jsconfig.json ├── keybindings-markdown.js ├── .vscode └── launch.json ├── LICENSE.md ├── CHANGELOG.md ├── SECURITY.md ├── README.md └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode-test-web 2 | node_modules 3 | keybindings.md 4 | *.vsix 5 | -------------------------------------------------------------------------------- /.github/assignment.yml: -------------------------------------------------------------------------------- 1 | { 2 | perform: true, 3 | assignees: [chrisdias] 4 | } 5 | -------------------------------------------------------------------------------- /atom-keyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-atom-keybindings/HEAD/atom-keyboard.png -------------------------------------------------------------------------------- /.github/locker.yml: -------------------------------------------------------------------------------- 1 | { 2 | daysAfterClose: 45, 3 | daysSinceLastUpdate: 3, 4 | perform: true 5 | } 6 | -------------------------------------------------------------------------------- /contributions_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-atom-keybindings/HEAD/contributions_list.png -------------------------------------------------------------------------------- /atom-keyboard-padded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/vscode-atom-keybindings/HEAD/atom-keyboard-padded.png -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .github 2 | .vscode 3 | .vscode-test-web 4 | build 5 | node_modules 6 | .gitignore 7 | jsconfig.json 8 | keybindings-markdown.js 9 | package-lock.json 10 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "es6", 5 | "lib": [ 6 | "es6" 7 | ], 8 | "sourceMap": true, 9 | "rootDir": "." 10 | }, 11 | "exclude": [ 12 | "node_modules", 13 | ".vscode-test" 14 | ] 15 | } -------------------------------------------------------------------------------- /.github/needs_more_info.yml: -------------------------------------------------------------------------------- 1 | { 2 | daysUntilClose: 7, 3 | needsMoreInfoLabel: 'needs more info', 4 | perform: true, 5 | closeComment: "This issue has been closed automatically because it needs more information and has not had recent activity. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!" 6 | } -------------------------------------------------------------------------------- /keybindings-markdown.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | 3 | // Get keybindings from package.json 4 | const keybindings = require('./package.json').contributes.keybindings; 5 | 6 | // Markdown content structure 7 | const headerContent = `| Command | Mac | Windows | Linux | 8 | | :---------: | :---------: | :---------: | :----------: | 9 | `; 10 | const rowContent = (accumulatedContent, row) => `${accumulatedContent}| ${row.command} | ${row.mac} | ${row.win} | ${row.linux} | 11 | `; 12 | 13 | // Generate markdown 14 | const generateContent = (accumulatedContent, row) => rowContent(accumulatedContent, row); 15 | const markdownOutput = keybindings.reduce(generateContent, headerContent); 16 | 17 | // Save markdown to external file 18 | fs.writeFileSync('keybindings.md', markdownOutput); 19 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Launch Extension", 6 | "type": "extensionHost", 7 | "request": "launch", 8 | "runtimeExecutable": "${execPath}", 9 | "args": [ 10 | "--extensionDevelopmentPath=${workspaceRoot}" 11 | ], 12 | "sourceMaps": true 13 | }, 14 | { 15 | "name": "Run Web Extension in VS Code", 16 | "type": "extensionHost", 17 | "debugWebWorkerHost": true, 18 | "request": "launch", 19 | "args": [ 20 | "--extensionDevelopmentPath=${workspaceFolder}", 21 | "--extensionDevelopmentKind=web" 22 | ], 23 | "outFiles": ["${workspaceFolder}/extension.js"] 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 - present Microsoft Corporation 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 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 3.0.9 2 | - Add `workspace` to `extensionKind` so we can be run in GitHub Codespaces and Remote 3 | 4 | ## 3.0.8 5 | - Roll back changes for [#47](https://github.com/microsoft/vscode-atom-keybindings/issues/47), as they are too disruptive (see [vscode#96894](https://github.com/microsoft/vscode/issues/96894)). 6 | 7 | ## 3.0.7 8 | - Fix typo [PR#63](https://github.com/microsoft/vscode-atom-keybindings/pull/63) (thank you @miclgael!) 9 | - Fix [#38](https://github.com/microsoft/vscode-atom-keybindings/issues/38) 10 | - Fix [#47](https://github.com/microsoft/vscode-atom-keybindings/issues/47) 11 | 12 | ## 3.0.4 13 | - More fixes for file explorer. 14 | 15 | ## 3.0.3 16 | - Fix overrriden shortcuts for file explorer. #40s 17 | 18 | ## 3.0.2 19 | - Added support for join lines keyboard shortcut in #39 20 | 21 | ## 3.0.1 22 | - Map `cmd+y`, `ctrl+y` to redo (thank you @ianaya89!) 23 | - Readme.md fix (thank you @glingy!) 24 | 25 | ## 3.0 26 | - Added settings for multi cursor mouse mapping and enabling format on paste by default. 27 | 28 | ## 2.0 29 | - Added default settings: minimap and format on paste 30 | - File tree view keyboard shortcuts migrated 31 | 32 | ## 1.0 33 | - Initial migration of keyboard shortcuts 34 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Security 4 | 5 | Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). 6 | 7 | If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)), please report it to us as described below. 8 | 9 | ## Reporting Security Issues 10 | 11 | **Please do not report security vulnerabilities through public GitHub issues.** 12 | 13 | Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). 14 | 15 | If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). 16 | 17 | You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). 18 | 19 | Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: 20 | 21 | * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) 22 | * Full paths of source file(s) related to the manifestation of the issue 23 | * The location of the affected source code (tag/branch/commit or direct URL) 24 | * Any special configuration required to reproduce the issue 25 | * Step-by-step instructions to reproduce the issue 26 | * Proof-of-concept or exploit code (if possible) 27 | * Impact of the issue, including how an attacker might exploit the issue 28 | 29 | This information will help us triage your report more quickly. 30 | 31 | If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs. 32 | 33 | ## Preferred Languages 34 | 35 | We prefer all communications to be in English. 36 | 37 | ## Policy 38 | 39 | Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd). 40 | 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Atom Keymap for VS Code 2 | 3 | This extension ports popular Atom keyboard shortcuts to Visual Studio Code. After installing the extension and restarting VS Code your favorite keyboard shortcuts from Atom are now available. 4 | 5 | ## Changes Introduced in Version 3.0 6 | 7 | - Multi cursor editing changed from alt + click to ctrl (or cmd) + click. 8 | - Enable format on paste. 9 | 10 | All of these features make VS Code more "Atom like." The changes to your User Settings file are as followed. 11 | 12 | ```javascript 13 | // Changes the multi cursor mouse binding 14 | "editor.multiCursorModifier": "ctrlCmd", 15 | 16 | // Controls whether format on paste is on or off 17 | "editor.formatOnPaste": true 18 | ``` 19 | 20 | ## Why don't some Atom commands work? 21 | 22 | This is because VS Code has not implemented those features. Head on over to this [GitHub issue](https://github.com/microsoft/vscode/issues/14316) and let the VS Code team know what you'd like to see. 23 | 24 | Additionally, you can install an extension for many of these features: 25 | 26 | * [FontSize Shortcuts](https://marketplace.visualstudio.com/items?itemName=peterjuras.fontsize-shortcuts) 27 | * [change case](https://marketplace.visualstudio.com/items?itemName=wmaurer.change-case) 28 | * [transpose](https://marketplace.visualstudio.com/items?itemName=v4run.transpose) 29 | 30 | ## How do I contribute a keyboard shortcut? 31 | 32 | We may have missed a keyboard shortcut. If we did please help us out! It is very easy to make a PR. 33 | 34 | 1. Head over to our [GitHub repository](https://github.com/waderyan/vscode-atom-keybindings). 35 | 2. Open [`package.json`](https://github.com/waderyan/vscode-atom-keybindings/blob/master/package.json). 36 | 3. Add a JSON object to [`contributes.keybindings`](https://github.com/waderyan/vscode-atom-keybindings/blob/master/package.json#L25) as seen below. 37 | 4. Open a pull request. 38 | 39 | ```json 40 | { 41 | "mac": "", 42 | "linux": "", 43 | "win": "", 44 | "key": "", 45 | "command": "" 46 | } 47 | ``` 48 | 49 | You can read more about how to contribute keybindings in extensions in the [official documentation](http://code.visualstudio.com/docs/extensionAPI/extension-points#_contributeskeybindings). 50 | 51 | ## What keyboard shortcuts are included? 52 | 53 | | Command | macOS | Windows | Linux | 54 | | :------ | :---- | :------ | :---- | 55 | | `cursorLeftSelect` | `ctrl+shift+b` | `ctrl+shift+b` | `ctrl+shift+b` | 56 | | `cursorRightSelect` | `ctrl+shift+f` | `ctrl+shift+f` | `ctrl+shift+f` | 57 | | `cursorUpSelect` | `ctrl+shift+p` | `ctrl+shift+p` | `ctrl+shift+p` | 58 | | `cursorDownSelect` | `ctrl+shift+n` | `ctrl+shift+n` | `ctrl+shift+n` | 59 | | `cursorWordEndRight` | `alt+f` | `alt+f` | `alt+f` | 60 | | `cursorWordStartLeft` | `alt+b` | `alt+b` | `alt+b` | 61 | | `cursorWordEndRightSelect` | `shift+alt+f` | `shift+alt+f` | `shift+alt+f` | 62 | | `cursorWordStartLeftSelect` | `shift+alt+b` | `shift+alt+b` | `shift+alt+b` | 63 | | `cursorEndSelect` | `ctrl+shift+e` | `ctrl+shift+e` | `ctrl+shift+e` | 64 | | `cursorHomeSelect` | `ctrl+shift+a` | `ctrl+shift+a` | `ctrl+shift+a` | 65 | | `cursorColumnSelectUp` | `ctrl+shift+up` | `undefined` | `shift+alt+up` | 66 | | `cursorColumnSelectDown` | `ctrl+shift+down` | `undefined` | `shift+alt+down` | 67 | | `editor.action.joinLines` | `cmd+j` | `ctrl+j` | `ctrl+j` | 68 | | `editor.action.moveLinesDownAction` | `ctrl+cmd+down` | `ctrl+down` | `ctrl+down` | 69 | | `editor.action.moveLinesUpAction` | `ctrl+cmd+up` | `ctrl+up` | `ctrl+up` | 70 | | `editor.action.copyLinesDownAction` | `cmd+shift+d` | `ctrl+shift+d` | `ctrl+shift+d` | 71 | | `editor.action.deleteLines` | `ctrl+shift+k` | `ctrl+shift+k` | `ctrl+shift+k` | 72 | | `editor.action.formatDocument` | `ctrl-alt-b` | `undefined` | `undefined` | 73 | | `editor.action.openLink` | `ctrl+shift+o` | `undefined` | `undefined` | 74 | | `editor.action.jumpToBracket` | `ctrl+m` | `ctrl+m` | `ctrl+m` | 75 | | `editor.action.showSnippets` | `alt+shift+s` | `alt+shift+s` | `alt+shift+s` | 76 | | `editor.action.format` | `ctrl+alt+b` | `alt+shift+f` | `ctrl+shift+i` | 77 | | `editor.fold` | `alt+cmd+[` | `ctrl+alt+/` | `ctrl+alt+/` | 78 | | `editor.unfold` | `alt+cmd+]` | `ctrl+alt+/` | `ctrl+alt+/` | 79 | | `editor.foldAll` | `alt+shift+cmd+[` | `ctrl+alt+[` | `ctrl+alt+[` | 80 | | `editor.unfoldAll` | `alt+shift+cmd+]` | `ctrl+alt+]` | `ctrl+alt+]` | 81 | | `editor.action.commentLine` | `cmd+shift+7` | `undefined` | `undefined` | 82 | | `editor.unfoldAll` | `alt+shift+cmd+]` | `ctrl+alt+]` | `ctrl+alt+]` | 83 | | `editor.unfoldAll` | `cmd+k cmd-0` | `undefined` | `undefined` | 84 | | `editor.foldLevel1` | `cmd+k cmd+1` | `ctrl+k ctrl+1` | `ctrl+k ctrl+1` | 85 | | `editor.foldLevel2` | `cmd+k cmd+2` | `ctrl+k ctrl+2` | `ctrl+k ctrl+2` | 86 | | `editor.foldLevel3` | `cmd+k cmd+3` | `ctrl+k ctrl+3` | `ctrl+k ctrl+3` | 87 | | `editor.foldLevel4` | `cmd+k cmd+4` | `ctrl+k ctrl+4` | `ctrl+k ctrl+4` | 88 | | `editor.foldLevel5` | `cmd+k cmd+5` | `ctrl+k ctrl+5` | `ctrl+k ctrl+5` | 89 | | `editor.action.selectHighlights` | `ctrl+cmd+g` | `alt+f3` | `alt+f3` | 90 | | `editor.action.insertCursorAtEndOfEachLineSelected` | `cmd+shift+l` | `alt+shift+l` | `alt+shift+l` | 91 | | `expandLineSelection` | `cmd+l` | `ctrl+l` | `ctrl+l` | 92 | | `explorer.newFile` | `a` | `a` | `a` | 93 | | `explorer.newFolder` | `shift+a` | `shift+a` | `shift+a` | 94 | | `explorer.openToSide` | `cmd+1` | `ctrl+1` | `ctrl+1` | 95 | | `filesExplorer.copy` | `cmd+c` | `ctrl+c` | `ctrl+c` | 96 | | `list.collapse` | `h` | `h` | `h` | 97 | | `list.expand` | `l` | `l` | `l` | 98 | | `list.focusDown` | `j` | `j` | `j` | 99 | | `list.focusUp` | `k` | `k` | `k` | 100 | | `moveFileToTrash` | `backspace` | `backspace` | `backspace` | 101 | | `markdown.showPreviewToSide` | `ctrl+shift+m` | `ctrl+shift+m` | `ctrl+shift+m` | 102 | | `redo` | `cmd+y` | `ctrl+y` | `ctrl+y` | 103 | | `workbench.action.toggleZenMode` | `cmd+shift+ctrl+f` | `shift+f11` | `shift+f11` | 104 | | `workbench.action.toggleSidebarVisibility` | `cmd+k cmd+b` | `ctrl+k ctrl+b` | `ctrl+k ctrl+b` | 105 | | `workbench.action.toggleSidebarVisibility` | `cmd+\` | `ctrl+\` | `ctrl+\` | 106 | | `workbench.action.splitEditor` | `cmd+k left` | `ctrl+k left` | `ctrl+k left` | 107 | | `workbench.action.quickOpen` | `cmd+t` | `ctrl+t` | `undefined` | 108 | | `workbench.action.quickOpenNavigateNext` | `cmd+b` | `ctrl+b` | `ctrl+b` | 109 | | `workbench.action.editor.changeLanguageMode` | `ctrl+shift+l` | `ctrl+shift+l` | `ctrl+shift+l` | 110 | | `workbench.action.reloadWindow` | `ctrl+alt+cmd+l` | `alt+ctrl+r` | `alt+ctrl+r` | 111 | | `workbench.action.toggleDevTools` | `alt+cmd+i` | `ctrl+alt+i` | `ctrl+alt+i` | 112 | | `workbench.action.files.openFolder` | `undefined` | `ctrl+shift+o` | `ctrl+shift+o` | 113 | | `workbench.action.files.openFileFolder` | `cmd+shift+o` | `undefined` | `undefined` | 114 | | `workbench.action.terminal.toggleTerminal` | `ctrl+alt+t` | `ctrl+` | `ctrl+` | 115 | | `workbench.action.toggleFullScreen` | `ctrl+cmd+f` | `f11` | `f11` | 116 | | `workbench.action.gotoSymbol` | `cmd+r` | `ctrl+r` | `ctrl+r` | 117 | | `workbench.action.zoomIn` | `cmd+=` | `undefined` | `undefined` | 118 | | `workbench.action.zoomOut` | `cmd+-` | `undefined` | `undefined` | 119 | | `workbench.action.nextEditor` | `undefined` | `ctrl+pagedown` | `ctrl+pagedown` | 120 | | `workbench.action.previousEditor` | `undefined` | `ctrl+pageup` | `ctrl+pageup` | 121 | | `workbench.action.zoomOut` | `cmd+-` | `ctrl+-` | `ctrl+-` | 122 | | `workbench.action.openEditorAtIndex1` | `cmd+1` | `alt+1` | `alt+1` | 123 | | `workbench.action.openEditorAtIndex2` | `cmd+2` | `alt+2` | `alt+2` | 124 | | `workbench.action.openEditorAtIndex3` | `cmd+3` | `alt+3` | `alt+3` | 125 | | `workbench.action.openEditorAtIndex4` | `cmd+4` | `alt+4` | `alt+4` | 126 | | `workbench.action.openEditorAtIndex5` | `cmd+5` | `alt+5` | `alt+5` | 127 | | `workbench.action.openEditorAtIndex6` | `cmd+6` | `alt+6` | `alt+6` | 128 | | `workbench.action.openEditorAtIndex7` | `cmd+7` | `alt+7` | `alt+7` | 129 | | `workbench.action.openEditorAtIndex8` | `cmd+8` | `alt+8` | `alt+8` | 130 | | `workbench.action.openEditorAtIndex9` | `cmd+9` | `alt+9` | `alt+9` | 131 | | `workbench.files.action.showActiveFileInExplorer` | `alt+cmd+\` | `ctrl+shift+\` | `ctrl+shift+\` | 132 | | `workbench.action.files.copyPathOfActiveFile` | `ctrl+shift+c` | `ctrl+shift+c` | `ctrl+shift+c` | 133 | | `workbench.action.openGlobalSettings` | `cmd+,` | `ctrl+,` | `ctrl+,` | 134 | | `workbench.action.showAllEditors` | `cmd+b` | `ctrl+b` | `ctrl+b` | 135 | 136 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "atom-keybindings", 3 | "displayName": "Atom Keymap", 4 | "description": "Popular Atom keybindings for Visual Studio Code", 5 | "version": "3.3.0", 6 | "publisher": "ms-vscode", 7 | "engines": { 8 | "vscode": "^1.75.0" 9 | }, 10 | "license": "MIT", 11 | "categories": [ 12 | "Keymaps" 13 | ], 14 | "keywords": [ 15 | "keybindings", 16 | "keymap" 17 | ], 18 | "preview": true, 19 | "icon": "atom-keyboard-padded.png", 20 | "extensionKind": [ 21 | "ui", 22 | "workspace" 23 | ], 24 | "contributes": { 25 | "keybindings": [ 26 | { 27 | "mac": "a", 28 | "win": "a", 29 | "linux": "a", 30 | "key": "a", 31 | "when": "filesExplorerFocus && !inputFocus", 32 | "command": "explorer.newFile" 33 | }, 34 | { 35 | "mac": "shift+a", 36 | "win": "shift+a", 37 | "linux": "shift+a", 38 | "key": "shift+a", 39 | "when": "filesExplorerFocus && !inputFocus", 40 | "command": "explorer.newFolder" 41 | }, 42 | { 43 | "mac": "cmd+1", 44 | "win": "ctrl+1", 45 | "linux": "ctrl+1", 46 | "key": "ctrl+1", 47 | "when": "filesExplorerFocus && !inputFocus", 48 | "command": "explorer.openToSide" 49 | }, 50 | { 51 | "mac": "backspace", 52 | "win": "backspace", 53 | "linux": "backspace", 54 | "key": "backspace", 55 | "when": "filesExplorerFocus && !inputFocus", 56 | "command": "moveFileToTrash" 57 | }, 58 | { 59 | "mac": "cmd+c", 60 | "win": "ctrl+c", 61 | "linux": "ctrl+c", 62 | "key": "ctrl+c", 63 | "when": "filesExplorerFocus && !inputFocus", 64 | "command": "filesExplorer.copy" 65 | }, 66 | { 67 | "mac": "h", 68 | "win": "h", 69 | "linux": "h", 70 | "key": "h", 71 | "when": "filesExplorerFocus && !inputFocus", 72 | "command": "list.collapse" 73 | }, 74 | { 75 | "mac": "l", 76 | "win": "l", 77 | "linux": "l", 78 | "key": "l", 79 | "when": "filesExplorerFocus && !inputFocus", 80 | "command": "list.expand" 81 | }, 82 | { 83 | "mac": "j", 84 | "win": "j", 85 | "linux": "j", 86 | "key": "j", 87 | "when": "filesExplorerFocus && !inputFocus", 88 | "command": "list.focusDown" 89 | }, 90 | { 91 | "mac": "k", 92 | "win": "k", 93 | "linux": "k", 94 | "key": "k", 95 | "when": "filesExplorerFocus && !inputFocus", 96 | "command": "list.focusUp" 97 | }, 98 | { 99 | "mac": "cmd+shift+ctrl+f", 100 | "win": "shift+f11", 101 | "linux": "shift+f11", 102 | "key": "shift+f11", 103 | "command": "workbench.action.toggleZenMode" 104 | }, 105 | { 106 | "mac": "ctrl+cmd+down", 107 | "win": "ctrl+down", 108 | "linux": "ctrl+down", 109 | "key": "ctrl+down", 110 | "command": "editor.action.moveLinesDownAction", 111 | "when": "editorTextFocus" 112 | }, 113 | { 114 | "mac": "ctrl+cmd+up", 115 | "win": "ctrl+up", 116 | "linux": "ctrl+up", 117 | "key": "ctrl+up", 118 | "command": "editor.action.moveLinesUpAction", 119 | "when": "editorTextFocus" 120 | }, 121 | { 122 | "mac": "cmd+shift+d", 123 | "win": "ctrl+shift+d", 124 | "linux": "ctrl+shift+d", 125 | "key": "ctrl+shift+d", 126 | "command": "editor.action.copyLinesDownAction", 127 | "when": "editorTextFocus" 128 | }, 129 | { 130 | "mac": "ctrl+shift+k", 131 | "win": "ctrl+shift+k", 132 | "linux": "ctrl+shift+k", 133 | "key": "ctrl+shift+k", 134 | "command": "editor.action.deleteLines", 135 | "when": "editorTextFocus" 136 | }, 137 | { 138 | "mac": "cmd+k cmd+b", 139 | "win": "ctrl+k ctrl+b", 140 | "linux": "ctrl+k ctrl+b", 141 | "key": "ctrl+k ctrl+b", 142 | "command": "workbench.action.toggleSidebarVisibility" 143 | }, 144 | { 145 | "mac": "cmd+\\", 146 | "win": "ctrl+\\", 147 | "linux": "ctrl+\\", 148 | "key": "ctrl+\\", 149 | "command": "workbench.action.toggleSidebarVisibility" 150 | }, 151 | { 152 | "mac": "cmd+k left", 153 | "win": "ctrl+k left", 154 | "linux": "ctrl+k left", 155 | "key": "ctrl+k left", 156 | "command": "workbench.action.splitEditor" 157 | }, 158 | { 159 | "mac": "cmd+t", 160 | "win": "ctrl+t", 161 | "key": "ctrl+p", 162 | "command": "workbench.action.quickOpen" 163 | }, 164 | { 165 | "mac": "ctrl-alt-b", 166 | "key": "shift-alt-f", 167 | "command": "editor.action.formatDocument" 168 | }, 169 | { 170 | "mac": "cmd+b", 171 | "win": "ctrl+b", 172 | "linux": "ctrl+b", 173 | "key": "ctrl+b", 174 | "command": "workbench.action.quickOpenNavigateNext", 175 | "when": "inQuickOpen" 176 | }, 177 | { 178 | "mac": "ctrl+shift+l", 179 | "win": "ctrl+shift+l", 180 | "linux": "ctrl+shift+l", 181 | "key": "ctrl+shift+l", 182 | "command": "workbench.action.editor.changeLanguageMode" 183 | }, 184 | { 185 | "mac": "ctrl+shift+m", 186 | "win": "ctrl+shift+m", 187 | "linux": "ctrl+shift+m", 188 | "key": "ctrl+shift+m", 189 | "command": "markdown.showPreviewToSide" 190 | }, 191 | { 192 | "mac": "ctrl+alt+cmd+l", 193 | "win": "alt+ctrl+r", 194 | "linux": "alt+ctrl+r", 195 | "key": "alt+ctrl+r", 196 | "command": "workbench.action.reloadWindow" 197 | }, 198 | { 199 | "mac": "ctrl+shift+o", 200 | "key": "none", 201 | "command": "editor.action.openLink" 202 | }, 203 | { 204 | "mac": "alt+cmd+i", 205 | "win": "ctrl+alt+i", 206 | "linux": "ctrl+alt+i", 207 | "key": "ctrl+alt+i", 208 | "command": "workbench.action.toggleDevTools" 209 | }, 210 | { 211 | "mac": "alt+shift+s", 212 | "win": "alt+shift+s", 213 | "linux": "alt+shift+s", 214 | "key": "alt+shift+s", 215 | "command": "editor.action.showSnippets" 216 | }, 217 | { 218 | "win": "ctrl+shift+o", 219 | "linux": "ctrl+shift+o", 220 | "key": "ctrl+shift+o", 221 | "command": "workbench.action.files.openFolder" 222 | }, 223 | { 224 | "mac": "cmd+shift+o", 225 | "key": "none", 226 | "command": "workbench.action.files.openFileFolder" 227 | }, 228 | { 229 | "mac": "ctrl+m", 230 | "win": "ctrl+m", 231 | "linux": "ctrl+m", 232 | "key": "ctrl+m", 233 | "command": "editor.action.jumpToBracket", 234 | "when": "editorTextFocus" 235 | }, 236 | { 237 | "mac": "cmd+l", 238 | "win": "ctrl+l", 239 | "linux": "ctrl+l", 240 | "key": "ctrl+l", 241 | "command": "expandLineSelection", 242 | "when": "editorTextFocus" 243 | }, 244 | { 245 | "mac": "ctrl+shift+up", 246 | "linux": "shift+alt+up", 247 | "key": "shift+alt+up", 248 | "command": "cursorColumnSelectUp", 249 | "when": "editorTextFocus" 250 | }, 251 | { 252 | "mac": "ctrl+shift+down", 253 | "linux": "shift+alt+down", 254 | "key": "shift+alt+down", 255 | "command": "cursorColumnSelectDown", 256 | "when": "editorTextFocus" 257 | }, 258 | { 259 | "mac": "ctrl+alt+b", 260 | "win": "alt+shift+f", 261 | "linux": "ctrl+shift+i", 262 | "key": "ctrl+shift+i", 263 | "command": "editor.action.format", 264 | "when": "editorHasFormattingProvider && editorTextFocus && !editorReadonly" 265 | }, 266 | { 267 | "mac": "ctrl+alt+t", 268 | "win": "ctrl+`", 269 | "linux": "ctrl+`", 270 | "key": "ctrl+`", 271 | "command": "workbench.action.terminal.toggleTerminal" 272 | }, 273 | { 274 | "mac": "ctrl+cmd+f", 275 | "win": "f11", 276 | "linux": "f11", 277 | "key": "f11", 278 | "command": "workbench.action.toggleFullScreen" 279 | }, 280 | { 281 | "mac": "cmd+r", 282 | "win": "ctrl+r", 283 | "linux": "ctrl+r", 284 | "key": "ctrl+r", 285 | "command": "workbench.action.gotoSymbol" 286 | }, 287 | { 288 | "mac": "alt+cmd+[", 289 | "win": "alt+ctrl+[", 290 | "linux": "alt+ctrl+[", 291 | "key": "alt+ctrl+[", 292 | "command": "editor.fold", 293 | "when": "editorTextFocus" 294 | }, 295 | { 296 | "mac": "alt+cmd+]", 297 | "win": "alt+ctrl+]", 298 | "linux": "alt+ctrl+]", 299 | "key": "alt+ctrl+]", 300 | "command": "editor.unfold", 301 | "when": "editorTextFocus" 302 | }, 303 | { 304 | "mac": "alt+cmd+shift+[", 305 | "win": "alt+ctrl+shift+[", 306 | "linux": "alt+ctrl+shift+[", 307 | "key": "alt+ctrl+shift+[", 308 | "command": "editor.foldAll", 309 | "when": "editorTextFocus" 310 | }, 311 | { 312 | "mac": "alt+cmd+shift+]", 313 | "win": "alt+ctrl+shift+]", 314 | "linux": "alt+ctrl+shift+]", 315 | "key": "alt+ctrl+shift+]", 316 | "command": "editor.unfoldAll", 317 | "when": "editorTextFocus" 318 | }, 319 | { 320 | "mac": "cmd+shift+7", 321 | "key": "cmd+k cmd+c", 322 | "command": "editor.action.commentLine", 323 | "when": "editorTextFocus" 324 | }, 325 | { 326 | "mac": "cmd+=", 327 | "key": "ctrl+=", 328 | "command": "workbench.action.zoomIn" 329 | }, 330 | { 331 | "mac": "cmd+-", 332 | "key": "ctrl+-", 333 | "command": "workbench.action.zoomOut" 334 | }, 335 | { 336 | "mac": "cmd+k cmd+1", 337 | "win": "ctrl+k ctrl+1", 338 | "linux": "ctrl+k ctrl+1", 339 | "key": "ctrl+k ctrl+1", 340 | "command": "editor.foldLevel1", 341 | "when": "editorTextFocus" 342 | }, 343 | { 344 | "mac": "cmd+k cmd+2", 345 | "win": "ctrl+k ctrl+2", 346 | "linux": "ctrl+k ctrl+2", 347 | "key": "ctrl+k ctrl+2", 348 | "command": "editor.foldLevel2", 349 | "when": "editorTextFocus" 350 | }, 351 | { 352 | "mac": "cmd+k cmd+3", 353 | "win": "ctrl+k ctrl+3", 354 | "linux": "ctrl+k ctrl+3", 355 | "key": "ctrl+k ctrl+3", 356 | "command": "editor.foldLevel3", 357 | "when": "editorTextFocus" 358 | }, 359 | { 360 | "mac": "cmd+k cmd+4", 361 | "win": "ctrl+k ctrl+4", 362 | "linux": "ctrl+k ctrl+4", 363 | "key": "ctrl+k ctrl+4", 364 | "command": "editor.foldLevel4", 365 | "when": "editorTextFocus" 366 | }, 367 | { 368 | "mac": "cmd+k cmd+5", 369 | "win": "ctrl+k ctrl+5", 370 | "linux": "ctrl+k ctrl+5", 371 | "key": "ctrl+k ctrl+5", 372 | "command": "editor.foldLevel5", 373 | "when": "editorTextFocus" 374 | }, 375 | { 376 | "win": "ctrl+pagedown", 377 | "linux": "ctrl+pagedown", 378 | "key": "ctrl+pagedown", 379 | "command": "workbench.action.nextEditor" 380 | }, 381 | { 382 | "win": "ctrl+pageup", 383 | "linux": "ctrl+pageup", 384 | "key": "ctrl+pageup", 385 | "command": "workbench.action.previousEditor" 386 | }, 387 | { 388 | "mac": "ctrl+cmd+g", 389 | "win": "alt+f3", 390 | "linux": "alt+f3", 391 | "key": "alt+f3", 392 | "command": "editor.action.selectHighlights", 393 | "when": "editorFocus" 394 | }, 395 | { 396 | "mac": "cmd+shift+l", 397 | "linux": "alt+shift+l", 398 | "win": "alt+shift+l", 399 | "key": "alt+shift+l", 400 | "command": "editor.action.insertCursorAtEndOfEachLineSelected", 401 | "when": "editorTextFocus && editorHasSelection" 402 | }, 403 | { 404 | "mac": "cmd+-", 405 | "win": "ctrl+-", 406 | "linux": "ctrl+-", 407 | "key": "ctrl+-", 408 | "command": "workbench.action.zoomOut" 409 | }, 410 | { 411 | "mac": "cmd+1", 412 | "win": "alt+1", 413 | "linux": "alt+1", 414 | "key": "alt+1", 415 | "command": "workbench.action.openEditorAtIndex1" 416 | }, 417 | { 418 | "mac": "cmd+2", 419 | "win": "alt+2", 420 | "linux": "alt+2", 421 | "key": "alt+2", 422 | "command": "workbench.action.openEditorAtIndex2" 423 | }, 424 | { 425 | "mac": "cmd+3", 426 | "win": "alt+3", 427 | "linux": "alt+3", 428 | "key": "alt+3", 429 | "command": "workbench.action.openEditorAtIndex3" 430 | }, 431 | { 432 | "mac": "cmd+4", 433 | "win": "alt+4", 434 | "linux": "alt+4", 435 | "key": "alt+4", 436 | "command": "workbench.action.openEditorAtIndex4" 437 | }, 438 | { 439 | "mac": "cmd+5", 440 | "win": "alt+5", 441 | "linux": "alt+5", 442 | "key": "alt+5", 443 | "command": "workbench.action.openEditorAtIndex5" 444 | }, 445 | { 446 | "mac": "cmd+6", 447 | "win": "alt+6", 448 | "linux": "alt+6", 449 | "key": "alt+6", 450 | "command": "workbench.action.openEditorAtIndex6" 451 | }, 452 | { 453 | "mac": "cmd+7", 454 | "win": "alt+7", 455 | "linux": "alt+7", 456 | "key": "alt+7", 457 | "command": "workbench.action.openEditorAtIndex7" 458 | }, 459 | { 460 | "mac": "cmd+8", 461 | "win": "alt+8", 462 | "linux": "alt+8", 463 | "key": "alt+8", 464 | "command": "workbench.action.openEditorAtIndex8" 465 | }, 466 | { 467 | "mac": "cmd+9", 468 | "win": "alt+9", 469 | "linux": "alt+9", 470 | "key": "alt+9", 471 | "command": "workbench.action.openEditorAtIndex9" 472 | }, 473 | { 474 | "mac": "alt+cmd+\\", 475 | "win": "ctrl+shift+\\", 476 | "linux": "ctrl+shift+\\", 477 | "key": "ctrl+shift+\\", 478 | "command": "workbench.files.action.showActiveFileInExplorer" 479 | }, 480 | { 481 | "mac": "ctrl+shift+c", 482 | "win": "ctrl+shift+c", 483 | "linux": "ctrl+shift+c", 484 | "key": "ctrl+shift+c", 485 | "command": "workbench.action.files.copyPathOfActiveFile", 486 | "when": "!terminalFocus" 487 | }, 488 | { 489 | "mac": "cmd+,", 490 | "win": "ctrl+,", 491 | "linux": "ctrl+,", 492 | "key": "ctrl+,", 493 | "command": "workbench.action.openGlobalSettings" 494 | }, 495 | { 496 | "mac": "cmd+b", 497 | "win": "ctrl+b", 498 | "linux": "ctrl+b", 499 | "key": "ctrl+b", 500 | "command": "workbench.action.showAllEditors" 501 | }, 502 | { 503 | "mac": "cmd+ctrl+shift+f", 504 | "win": "shift+f11", 505 | "linux": "shift+f11", 506 | "key": "shift+f11", 507 | "command": "workbench.action.toggleZenMode" 508 | }, 509 | { 510 | "mac": "cmd+y", 511 | "win": "ctrl+y", 512 | "linux": "ctrl+y", 513 | "key": "ctrl+y", 514 | "command": "redo" 515 | }, 516 | { 517 | "mac": "cmd+j", 518 | "linux": "ctrl+j", 519 | "win": "ctrl+j", 520 | "key": "ctrl+j", 521 | "command": "editor.action.joinLines" 522 | }, 523 | { 524 | "mac": "cmd+p", 525 | "win": "ctrl+p", 526 | "linux": "ctrl+p", 527 | "key": "ctrl+p", 528 | "command": "workbench.action.quickOpenPreviousEditor" 529 | }, 530 | { 531 | "key": "/", 532 | "command": "list.toggleKeyboardNavigation", 533 | "when": "listFocus && !inputFocus && listSupportsKeyboardNavigation" 534 | }, 535 | { 536 | "mac": "cmd+k", 537 | "win": "ctrl+k", 538 | "linux": "ctrl+k", 539 | "key": "ctrl+k", 540 | "command": "workbench.action.terminal.clear", 541 | "when": "terminalFocus" 542 | } 543 | ], 544 | "configurationDefaults": { 545 | "editor.multiCursorModifier": "ctrlCmd", 546 | "editor.formatOnPaste": true, 547 | "workbench.list.typeNavigationMode": "trigger" 548 | } 549 | }, 550 | "scripts": { 551 | "open-in-browser": "vscode-test-web --extensionDevelopmentPath=. ." 552 | }, 553 | "devDependencies": { 554 | "@vscode/test-web": "^0.0.74" 555 | }, 556 | "repository": { 557 | "type": "git", 558 | "url": "https://github.com/Microsoft/vscode-atom-keybindings.git" 559 | }, 560 | "bugs": { 561 | "url": "https://github.com/Microsoft/vscode-atom-keybindings/issues" 562 | } 563 | } 564 | --------------------------------------------------------------------------------