کلید های میانبر ویژال استدیو
Key Bindings for Visual Studio Code
Visual Studio Code lets you perform most tasks directly from the keyboard. This page lists out the default bindings and describes how you can update them.
Note: If you visit this page on a Mac, you will see the key bindings for the Mac. If you visit using Windows or Linux, you will see the keys for that OS. If you need the key binding for another OS, hover your mouse over the key you are interested in.
Note: The following keys are rendered assuming a standard US keyboard layout. If you use a different keyboard layout, please read below.
Basic Editing
Key | Command | Command id |
---|---|---|
Ctrl+X | Cut line (empty selection) | editor.action.clipboardCutAction |
Ctrl+C | Copy line (empty selection) | editor.action.clipboardCopyAction |
Ctrl+Shift+K | Delete Line | editor.action.deleteLines |
Ctrl+Enter | Insert Line Below | editor.action.insertLineAfter |
Ctrl+Shift+Enter | Insert Line Above | editor.action.insertLineBefore |
Alt+Down | Move Line Down | editor.action.moveLinesDownAction |
Alt+Up | Move Line Up | editor.action.moveLinesUpAction |
Shift+Alt+Down | Copy Line Down | editor.action.copyLinesDownAction |
Shift+Alt+Up | Copy Line Up | editor.action.copyLinesUpAction |
Ctrl+D | Add Selection To Next Find Match | editor.action.addSelectionToNextFindMatch |
Ctrl+K Ctrl+D | Move Last Selection To Next Find Match | editor.action.moveSelectionToNextFindMatch |
Ctrl+U | Undo last cursor operation | cursorUndo |
Shift+Alt+I | Insert cursor at end of each line selected | editor.action.insertCursorAtEndOfEachLineSelected |
Ctrl+Shift+L | Select all occurrences of current selection | editor.action.selectHighlights |
Ctrl+F2 | Select all occurrences of current word | editor.action.changeAll |
Ctrl+I | Select current line | expandLineSelection |
Ctrl+Alt+Down | Insert Cursor Below | editor.action.insertCursorBelow |
Ctrl+Alt+Up | Insert Cursor Above | editor.action.insertCursorAbove |
Ctrl+Shift+\ | Jump to matching bracket | editor.action.jumpToBracket |
Ctrl+] | Indent Line | editor.action.indentLines |
Ctrl+[ | Outdent Line | editor.action.outdentLines |
Home | Go to Beginning of Line | cursorHome |
End | Go to End of Line | cursorEnd |
Ctrl+End | Go to End of File | cursorBottom |
Ctrl+Home | Go to Beginning of File | cursorTop |
Ctrl+Down | Scroll Line Down | scrollLineDown |
Ctrl+Up | Scroll Line Up | scrollLineUp |
Ctrl+PageDown | Scroll Page Down | scrollPageDown |
Ctrl+PageUp | Scroll Page Up | scrollPageUp |
Ctrl+Shift+[ | Fold (collapse) region | editor.fold |
Ctrl+Shift+] | Unfold (uncollapse) region | editor.unfold |
Ctrl+Shift+Alt+[ | Fold (collapse) all regions | editor.foldAll |
Ctrl+Shift+Alt+] | Unfold (uncollapse) all regions | editor.unfoldAll |
Ctrl+K Ctrl+C | Add Line Comment | editor.action.addCommentLine |
Ctrl+K Ctrl+U | Remove Line Comment | editor.action.removeCommentLine |
Ctrl+/ | Toggle Line Comment | editor.action.commentLine |
Shift+Alt+A | Toggle Block Comment | editor.action.blockComment |
Ctrl+F | Find | actions.find |
Ctrl+H | Replace | editor.action.startFindReplaceAction |
F3 | Find Next | editor.action.nextMatchFindAction |
Shift+F3 | Find Previous | editor.action.previousMatchFindAction |
Alt+C | Toggle Find Case Sensitive | toggleFindCaseSensitive |
Alt+R | Toggle Find Regex | toggleFindRegex |
Alt+W | Toggle Find Whole Word | toggleFindWholeWord |
Ctrl+M | Toggle Use of Tab Key for Setting Focus | editor.action.toggleTabFocusMode |
unassigned | Toggle Render Whitespace | toggleRenderWhitespace |
Rich Languages Editing
Key | Command | Command id |
---|---|---|
Ctrl+Space | Trigger Suggest | editor.action.triggerSuggest |
Ctrl+Shift+Space | Trigger Parameter Hints | editor.action.triggerParameterHints |
Shift+Alt+F | Format Code | editor.action.format |
F12 | Go to Definition | editor.action.goToDeclaration |
Alt+F12 | Peek Definition | editor.action.previewDeclaration |
Ctrl+K F12 | Open Definition to the Side | editor.action.openDeclarationToTheSide |
Ctrl+. | Quick Fix | editor.action.quickFix |
Shift+F12 | Show References | editor.action.referenceSearch.trigger |
F2 | Rename Symbol | editor.action.rename |
Ctrl+Shift+. | Replace with Next Value | editor.action.inPlaceReplace.down |
Ctrl+Shift+, | Replace with Previous Value | editor.action.inPlaceReplace.up |
Shift+Alt+Right | Expand AST Select | editor.action.smartSelect.grow |
Shift+Alt+Left | Shrink AST Select | editor.action.smartSelect.shrink |
Ctrl+Shift+X | Trim Trailing Whitespace | editor.action.trimTrailingWhitespace |
Ctrl+K M | Change Language Mode | workbench.action.editor.changeLanguageMode |
Navigation
Key | Command | Command id |
---|---|---|
Ctrl+T | Show All Symbols | workbench.action.showAllSymbols |
Ctrl+G | Go to Line… | workbench.action.gotoLine |
Ctrl+P | Go to File…, Quick Open | workbench.action.quickOpen |
Ctrl+Shift+O | Go to Symbol… | workbench.action.gotoSymbol |
Ctrl+Shift+M | Show Errors and Warnings | workbench.action.showErrorsWarnings |
F8 | Go to Next Error or Warning | editor.action.marker.next |
Shift+F8 | Go to Previous Error or Warning | editor.action.marker.prev |
F1 | Show All Commands | workbench.action.showCommands |
Ctrl+Tab | Navigate History | workbench.action.openPreviousEditor |
Alt+Left | Go Back | workbench.action.navigateBack |
Alt+Right | Go Forward | workbench.action.navigateForward |
Editor/Window Management
Key | Command | Command id |
---|---|---|
Ctrl+Shift+N | New Window | workbench.action.newWindow |
Ctrl+Shift+W | Close Window | workbench.action.closeWindow |
Ctrl+F4 | Close Editor | workbench.action.closeActiveEditor |
Ctrl+K F | Close Folder | workbench.action.closeFolder |
Ctrl+` | Cycle Between Opened Editors | workbench.action.cycleEditor |
Ctrl+\ | Split Editor | workbench.action.splitEditor |
Ctrl+1 | Focus into Left Hand Editor | workbench.action.focusFirstEditor |
Ctrl+2 | Focus into Side Editor | workbench.action.focusSecondEditor |
Ctrl+3 | Focus into Right Hand Editor | workbench.action.focusThirdEditor |
Ctrl+Alt+Left | Focus into Next Editor on the Left | workbench.action.focusLeftEditor |
Ctrl+Alt+Right | Focus into Next Editor on the Right | workbench.action.focusRightEditor |
Ctrl+K Left | Move Active Editor Left | workbench.action.moveActiveEditorLeft |
Ctrl+K Right | Move Active Editor Right | workbench.action.moveActiveEditorRight |
File Management
Key | Command | Command id |
---|---|---|
Ctrl+N | New File | workbench.action.files.newUntitledFile |
Ctrl+O | Open File… | workbench.action.files.openFile |
Ctrl+S | Save | workbench.action.files.save |
unassigned | Save All | workbench.action.files.saveAll |
Ctrl+Shift+S | Save As… | workbench.action.files.saveAs |
Ctrl+K W | Close File | workbench.files.action.closeFile |
Ctrl+K Ctrl+W | Close All Files | workbench.files.action.closeAllFiles |
Ctrl+K Ctrl+Shift+W | Close Other Files | workbench.files.action.closeOtherFiles |
Ctrl+K Enter | Add to Working Files | workbench.files.action.addToWorkingFiles |
Ctrl+K Down | Open Next Working File | workbench.files.action.openNextWorkingFile |
Ctrl+K Up | Open Previous Working File | workbench.files.action.openPreviousWorkingFile |
Ctrl+K P | Copy Path of Active File | workbench.action.files.copyPathOfActiveFile |
Ctrl+K R | Reveal Active File in Windows | workbench.action.files.revealActiveFileInWindows |
Ctrl+K O | Show Opened File in New Window | workbench.action.files.showOpenedFileInNewWindow |
unassigned | Compare Opened File With | workbench.files.action.compareFileWith |
Display
Key | Command | Command id |
---|---|---|
F11 | Toggle Full Screen | workbench.action.toggleFullScreen |
Ctrl+= | Zoom in | workbench.action.zoomIn |
Ctrl+- | Zoom out | workbench.action.zoomOut |
Ctrl+B | Toggle Sidebar Visibility | workbench.action.toggleSidebarVisibility |
Ctrl+Shift+D | Show Debug | workbench.view.debug |
Ctrl+Shift+E | Show Explorer | workbench.view.explorer |
Ctrl+Shift+G | Show Git | workbench.view.git |
Ctrl+Shift+F | Show Search | workbench.view.search |
Ctrl+Shift+J | Toggle Search Details | workbench.action.search.toggleQueryDetails |
Ctrl+Shift+C | Open New Command Prompt | workbench.action.terminal.openNativeConsole |
Ctrl+Shift+U | Show Output | workbench.action.output.toggleOutput |
Ctrl+Shift+V | Toggle Markdown Preview | workbench.action.markdown.togglePreview |
Ctrl+K V | Open Preview to the Side | workbench.action.markdown.openPreviewSideBySide |
Preferences
Key | Command | Command id |
---|---|---|
unassigned | Open User Settings | workbench.action.openGlobalSettings |
unassigned | Open Workspace Settings | workbench.action.openWorkspaceSettings |
unassigned | Open Keyboard Shortcuts | workbench.action.openGlobalKeybindings |
unassigned | Open User Snippets | workbench.action.openSnippets |
unassigned | Select Color Theme | workbench.action.selectTheme |
unassigned | Configure Display Language | workbench.action.configureLocale |
Debug
Key | Command | Command id |
---|---|---|
F9 | Toggle Breakpoint | editor.debug.action.toggleBreakpoint |
F5 | Continue | workbench.action.debug.continue |
F5 | Pause | workbench.action.debug.start |
F11 | Step Into | workbench.action.debug.stepInto |
Shift+F11 | Step Out | workbench.action.debug.stepOut |
F10 | Step Over | workbench.action.debug.stepOver |
Shift+F5 | Stop | workbench.action.debug.stop |
Ctrl+K Ctrl+I | Show Hover | editor.action.showHover |
Tasks
Key | Command | Command id |
---|---|---|
Ctrl+Shift+B | Run Build Task | workbench.action.tasks.build |
unassigned | Run Test Task | workbench.action.tasks.test |
Extensions
Key | Command | Command id |
---|---|---|
unassigned | Install Extension | workbench.extensions.action.installExtension |
unassigned | Show Installed Extensions | workbench.extensions.action.listExtensions |
unassigned | Show Outdated Extensions | workbench.extensions.action.listOutdatedExtensions |
unassigned | Show Extension Recommendations | workbench.extensions.action.listSuggestedExtensions |
Customizing Shortcuts
All keyboard shortcuts in VS Code can be customized via the User/keybindings.json
file.
- To configure keyboard shortcuts the way you want, go to the menu under File > Preferences > Keyboard Shortcuts.
- This will open the Default Keyboard Shortcuts on the left and your
User/keybindings.json
file where you can overwrite the default bindings on the right.
Keyboard Rules
The keyboard shortcuts dispatching is done by analyzing a list of rules that are expressed in JSON. Here are some examples:
// Keybindings that are active when the focus is in the editor
{ "key": "home", "when": "editorTextFocus", "command": "cursorHome" },
{ "key": "shift+home", "when": "editorTextFocus", "command": "cursorHomeSelect" },
// Keybindings that are complementary
{ "key": "f5", "when": "inDebugMode", "command": "workbench.action.debug.continue" },
{ "key": "f5", "when": "!inDebugMode", "command": "workbench.action.debug.start" }
// Global keybindings
{ "key": "ctrl+f", "command": "actions.find" },
{ "key": "alt+left", "command": "workbench.action.navigateBack" },
{ "key": "alt+right", "command": "workbench.action.navigateForward" },
// Global keybindings using chords
{ "key": "ctrl+k enter", "command": "workbench.files.action.addToWorkingFiles" },
{ "key": "ctrl+k ctrl+w", "command": "workbench.files.action.closeAllFiles" },
Each rule consists of:
- a required
key
that describes the pressed keys. - an optional
when
containing a boolean expression that will be evaluated depending on the current context. - an optional
command
containing the identifier of the command to execute.
When a key is pressed:
- the rules are evaluated from bottom to top.
- the first rule that matches, both the
key
and in terms ofwhen
, is accepted. - no more rules are processed.
- if a rule is found and has a
command
set, thecommand
is executed.
The additional User/keybindings.json
rules are appended at runtime to the bottom of the default rules, thus allowing them to overwrite the default rules. The User/keybindings.json
file is watched by VS Code so editing it while VS Code is running will update the rules at runtime.
Accepted keys
The key
is made up of modifiers and the key itself.
The following modifiers are accepted:
OS | Modifiers |
---|---|
OS X | ctrl+, shift+, alt+, cmd+ |
Windows | ctrl+, shift+, alt+, win+ |
Linux | ctrl+, shift+, alt+, meta+ |
The following keys are accepted:
- f1-f19, a-z, 0-9
- `, –, =, [, ], \, ;, ‘, ,, ., /
- left, up, right, down, pageup, pagedown, end, home
- tab, enter, escape, space, backspace, delete
- pausebreak, capslock, insert
- numpad0-numpad9, numpad_multiply, numpad_add, numpad_separator
- numpad_subtract, numpad_decimal, numpad_divide
Chords are described by separating the two keypresses with a space. E.g.: ctrl+k ctrl+c.
Keyboard layouts
Note: This section relates only to key bindings, not to typing in the editor.
The keys above are string representations for virtual keys and do not necessarily relate to the produced character when they are pressed. More precisely:
- Reference: https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85)
- tab for
VK_TAB
(0x09
) - ; for
VK_OEM_1
(0xBA
) - = for
VK_OEM_PLUS
(0xBB
) - , for
VK_OEM_COMMA
(0xBC
) - – for
VK_OEM_MINUS
(0xBD
) - . for
VK_OEM_PERIOD
(0xBE
) - / for
VK_OEM_2
(0xBF
) - ` for
VK_OEM_3
(0xC0
) - [ for
VK_OEM_4
(0xDB
) - \ for
VK_OEM_5
(0xDC
) - ] for
VK_OEM_6
(0xDD
) - ‘ for
VK_OEM_7
(0xDE
) - etc.
Different keyboard layouts usually reposition the above virtual keys or change the characters produced when they are pressed. When using a different keyboard layout than the standard US, Visual Studio Code does the following:
All the key bindings are rendered in the UI using the current system’s keyboard layout. For example, Split Editor
when using a French (France) keyboard layout is now rendered as Ctrl+*:
When editing keybindings.json
, VS Code highlights misleading key bindings – those that are represented in the file with the character produced under the standard US keyboard layout, but which need pressing keys with different labels under the current system’s keyboard layout. For example, here is how the Default keybindings
rules look like when using a French (France) keyboard layout:
There is also a widget that helps input the key binding rule when editing keybindings.json
. To launch the Define Keybinding widget, press Ctrl+K Ctrl+K. The widget listens for key presses and renders the serialized JSON representation in the text box and below it, the keys that VS Code has detected under your current keyboard layout. Once you’ve typed the key combination you want, you can press Enter and a rule snippet will be inserted.
Note: Visual Studio Code detects your current keyboard layout on start-up and then caches this information. For a good experience, we recommend restarting VS Code if you change your keyboard layout.
Next Steps
Now that you know about our Key binding support, what’s next…
- Customization – Configure Code the way you want – Themes, Settings and more
- Language Support – Our Good, Better, Best language grid to see what you can expect
- Debugging – This is where VS Code really shines
- Node.js – End to end Node.js scenario with a sample app
Common Questions
Q: How to find out what command is bound to a specific key?
A: In the Default Keyboard Shortcuts, open Quick Outline
by pressing Ctrl+Shift+O
Q: How to add a key binding to an action? E.g. Add Ctrl+D to Delete Lines
A: Find a rule that triggers the action in the Default Keyboard Shortcuts and write a modified version of it in your User/keybindings.json
file:
// Original, in Default Keyboard Shortcuts
{ "key": "ctrl+shift+k", "command": "editor.action.deleteLines",
"when": "editorTextFocus" },
// Modified, in User/keybindings.json, Ctrl+D now will also trigger this action
{ "key": "ctrl+d", "command": "editor.action.deleteLines",
"when": "editorTextFocus" },
Q: How to remove a key binding from an action? E.g. Remove Ctrl+Shift+K from Delete Lines
A: Find a rule that triggers the action in the Default Keyboard Shortcuts and write a modified version of it in your User/keybindings.json
file:
// Original, in Default Keyboard Shortcuts
{ "key": "ctrl+shift+k", "command": "editor.action.deleteLines",
"when": "editorTextFocus" },
// Modified, in User/keybindings.json, Ctrl+Shift+K won't do anything anymore since command is empty
{ "key": "ctrl+shift+k", "when": "editorTextFocus" },
Q: How can I add a key binding for only certain file types?
A: Use the editorLangId
context key in your when
clause:
{ "key": "shift+alt+a", "command": "editor.action.blockComment",
"when": "editorTextFocus && editorLangId == 'csharp'" },
Q: I have modified my key bindings in User/keybindings.json
, why don’t they work?
A: The most common problem is a syntax error in the file. Otherwise, try removing the when
clause or picking a different key
. Unfortunately, at this point, it is a trial and error process.
آخرین دیدگاهها