这些键盘快捷键的可打印版本链接:
windows
macOS
Linux
注意:以下是使用标准美式键盘布局的.如果您使用不同的键盘布局,请阅读这里 .
键 | 命令 | 命令ID |
---|---|---|
Ctrl + X | 切线(空选) | editor.action.clipboardCutAction |
Ctrl + C | 复制线(空选) | editor.action.clipboardCopyAction |
Ctrl + Shift + K | 删除行 | editor.action.deleteLines |
Ctrl + Enter | 在下面插入行 | editor.action.insertLineAfter |
Ctrl + Shift + Enter | 在上面插入行 | editor.action.insertLineBefore |
Alt + Down | 向下移动线 | editor.action.moveLinesDownAction |
Alt + Up | 向上移动线 | editor.action.moveLinesUpAction |
Shift + Alt + Down | 向下复制线 | editor.action.copyLinesDownAction |
Shift + Alt + Up | 复制行 | editor.action.copyLinesUpAction |
Ctrl + D | 将选择添加到下一个查找匹配 | editor.action.addSelectionToNextFindMatch |
Ctrl + K Ctrl + D | 将最后一个选择移至下一个查找匹配 | editor.action.moveSelectionToNextFindMatch |
Ctrl + U | 撤消上一个光标操作 | cursorUndo |
Shift + Alt + I | 在所选每行的末尾插入光标 | editor.action.insertCursorAtEndOfEachLineSelected |
Ctrl + Shift + L | 选择当前选择的所有事件 | editor.action.selectHighlights |
Ctrl + F2 | 选择当前单词的所有出现 | editor.action.changeAll |
Ctrl + I | 选择当前行 | expandLineSelection |
Ctrl + Alt + Down | 在下面插入光标 | editor.action.insertCursorBelow |
Ctrl + Alt + Up | 在上面插入光标 | editor.action.insertCursorAbove |
Ctrl + Shift + \ | 跳转到匹配括号 | editor.action.jumpToBracket |
Ctrl + ] | 缩进线 | editor.action.indentLines |
Ctrl + [ | Outedent线 | editor.action.outdentLines |
Home | 转到行首 | cursorHome |
End | 转到行尾 | cursorEnd |
Ctrl + End | 转到文件结尾 | cursorBottom |
Ctrl + Home | 转到文件开头 | cursorTop |
Ctrl + Down | 向下滚动线 | scrollLineDown |
Ctrl + Up | 滚动向上 | scrollLineUp |
Alt + PageDown | 向下滚动页面 | scrollPageDown |
Alt + PageUp | 向上翻页 | scrollPageUp |
Ctrl + Shift + [ | 折叠(折叠)区域 | editor.fold |
Ctrl + Shift +] | 展开(uncollapse)区域 | editor.unfold |
Ctrl + K Ctrl + [ | 折叠(折叠)所有子区域 | editor.foldRecursively |
Ctrl + K Ctrl +] | 展开(uncollapse)所有子区域 | editor.unfoldRecursively |
Ctrl + K Ctrl + 0 | 折叠(折叠)所有区域 | editor.foldAll |
Ctrl + K Ctrl + J | 展开(uncollapse)所有地区 | editor.unfoldAll |
Ctrl + K Ctrl + C | 添加行注释 | editor.action.addCommentLine |
Ctrl + K Ctrl + U | 删除行注释 | editor.action.removeCommentLine |
Ctrl + / | 切换线注释 | editor.action.commentLine |
Shift + Alt + A | 切换块注释 | editor.action.blockComment |
Ctrl + F | 找 | actions.find |
Ctrl + H | 更换 | editor.action.startFindReplaceAction |
F3 | 找下一个 | editor.action.nextMatchFindAction |
Shift + F3 | 查找上一个 | editor.action.previousMatchFindAction |
Alt + Enter | 选择查找匹配的所有出现次数 | editor.action.selectAllMatches |
Alt + C | 切换查找区分大小写 | toggleFindCaseSensitive |
Alt + R | 切换查找正则表达式 | toggleFindRegex |
Alt + W | 切换查找整个词 | toggleFindWholeWord |
Ctrl + M | 切换使用Tab键设置焦点 | editor.action.toggleTabFocusMode |
unassigned | 切换渲染空白 | toggleRenderWhitespace |
Alt + Z | 切换换行 | editor.action.toggleWordWrap |
键 | 命令 | 命令ID |
---|---|---|
Ctrl + space | 触发建议 | editor.action.triggerSuggest |
Ctrl + Shift + space | 触发器参数提示 | editor.action.triggerParameterHints |
Shift + Alt + F | 格式文档 | editor.action.formatDocument |
Ctrl + K Ctrl + F | 格式选择 | editor.action.formatSelection |
F12 | 转到定义 | editor.action.goToDeclaration |
Alt + F12 | Peek定义 | editor.action.previewDeclaration |
Ctrl + K F12 | 打开定义到边 | editor.action.openDeclarationToTheSide |
Ctrl + . | 快速解决 | editor.action.quickFix |
Shift + F12 | 显示引用 | editor.action.referenceSearch.trigger |
F2 | 重命名符号 | editor.action.rename |
Ctrl + Shift + . | 替换为下一个值 | editor.action.inPlaceReplace.down |
Ctrl + Shift + , | 替换为以前的值 | editor.action.inPlaceReplace.up |
Shift + Alt + Right | 展开AST选择 | editor.action.smartSelect.grow |
Shift + Alt + left | 收缩AST选择 | editor.action.smartSelect.shrink |
Ctrl + K Ctrl + X | 修剪尾随空白 | editor.action.trimTrailingWhitespace |
Ctrl + KM | 更改语言模式 | workbench.action.editor.changeLanguageMode |
键 | 命令 | 命令ID |
---|---|---|
Ctrl + T | 显示所有符号 | workbench.action.showAllSymbols |
Ctrl + G | 转到行... | workbench.action.gotoLine |
Ctrl + P | 转到文件...,快速打开 | workbench.action.quickOpen |
Ctrl + Shift + O | 转到符号... | workbench.action.gotoSymbol |
Ctrl + Shift + M | 显示问题 | workbench.actions.view.problems |
F8 | 转到下一个错误或警告 | editor.action.marker.next |
Shift + F8 | 转到上一个错误或警告 | editor.action.marker.prev |
Ctrl + Shift + P | 显示所有命令 | workbench.action.showCommands |
Ctrl + Shift + Tab | 导航编辑器组历史记录 | workbench.action.openPreviousRecentlyUsedEditorInGroup |
Alt + Left | 回去 | workbench.action.navigateBack |
Alt + Right | 前进 | workbench.action.navigateForward |
键 | 命令 | 命令ID |
---|---|---|
Ctrl + Shift + N | 新窗户 | workbench.action.newWindow |
Ctrl + W | 关闭窗口 | workbench.action.closeWindow |
Ctrl + F4 | 关闭编辑器 | workbench.action.closeActiveEditor |
Ctrl + KF | 关闭文件夹 | workbench.action.closeFolder |
unassigned | 编辑器组之间循环 | workbench.action.navigateEditorGroups |
Ctrl + \ | 拆分编辑器 | workbench.action.splitEditor |
Ctrl + 1 | 聚焦到左编辑器组 | workbench.action.focusFirstEditorGroup |
Ctrl + 2 | 专注于侧编辑器组 | workbench.action.focusSecondEditorGroup |
Ctrl + 3 | 专注于右侧编辑器组 | workbench.action.focusThirdEditorGroup |
Ctrl + K Ctrl + Left | 专注于左侧的编辑小组 | workbench.action.focusPreviousGroup |
Ctrl + K Ctrl + Right | 专注于编辑组权利 | workbench.action.focusNextGroup |
Ctrl + Shift + PageUp | 将编辑器左移 | workbench.action.moveEditorLeftInGroup |
Ctrl + Shift + PageDown | 移动编辑器 | workbench.action.moveEditorRightInGroup |
Ctrl +K Left | 将活动编辑器组向左移动 | workbench.action.moveActiveEditorGroupLeft |
Ctrl +K Right | 将活动编辑器组移到右侧 | workbench.action.moveActiveEditorGroupRight |
键 | 命令 | 命令ID |
---|---|---|
Ctrl + N | 新文件 | workbench.action.files.newUntitledFile |
Ctrl + O | 打开文件... | workbench.action.files.openFile |
Ctrl + S | 保存 | workbench.action.files.save |
unassigned | 保存全部 | workbench.action.files.saveAll |
Ctrl + Shift + S | 另存为... | workbench.action.files.saveAs |
Ctrl + F4 | 关 | workbench.action.closeActiveEditor |
unassigned | 关闭其他 | workbench.action.closeOtherEditors |
Ctrl + KW | 关闭组 | workbench.action.closeEditorsInGroup |
unassigned | 关闭其他组 | workbench.action.closeEditorsInOtherGroups |
unassigned | 关闭组向左 | workbench.action.closeEditorsToTheLeft |
unassigned | 关闭组向右 | workbench.action.closeEditorsToTheRight |
Ctrl + K Ctrl + W | 关闭所有 | workbench.action.closeAllEditors |
Ctrl + Shift + T | 重新打开已关闭的编辑器 | workbench.action.reopenClosedEditor |
Ctrl + K Enter | 保持打开 | workbench.action.keepEditor |
Ctrl + Tab | 打开下一步 | workbench.action.openNextRecentlyUsedEditorInGroup |
Ctrl + Shift + Tab | 打开上一页 | workbench.action.openPreviousRecentlyUsedEditorInGroup |
Ctrl + KP | 复制活动文件的路径 | workbench.action.files.copyPathOfActiveFile |
Ctrl + KR | 在Windows中显示活动文件 | workbench.action.files.revealActiveFileInWindows |
Ctrl + KO | 在新窗口中显示已打开的文件 | workbench.action.files.showOpenedFileInNewWindow |
unassigned | 比较打开的文件与 | workbench.files.action.compareFileWith |
Escape Escape | 离开禅模式 | workbench.action.exitZenMode |
Ctrl + = | 放大 | workbench.action.zoomIn |
Ctrl + - | 缩小 | workbench.action.zoomOut |
Ctrl + Numpad0 | 重置缩放 | workbench.action.zoomReset |
Ctrl + B | 切换边栏可见性 | workbench.action.toggleSidebarVisibility |
Ctrl + Shift + E | 显示资源管理器/切换焦点 | workbench.view.explorer |
Ctrl + Shift + D | 显示调试 | workbench.view.debug |
Ctrl + Shift + G | 显示Git | workbench.view.git |
Ctrl + Shift + X | 显示扩展名 | workbench.view.extensions |
Ctrl + Shift + U | 显示输出 | workbench.action.output.toggleOutput |
Ctrl + Q | 快速打开视图 | workbench.action.quickOpenView |
Ctrl + Shift + F | 显示搜索 | workbench.view.search |
Ctrl + Shift + H | 在文件中替换 | workbench.action.replaceInFiles |
Ctrl + Shift + J | 切换搜索详情 | workbench.action.search.toggleQueryDetails |
Ctrl + Shift + C | 打开新命令提示符 | workbench.action.terminal.openNativeConsole |
Ctrl + Shift + V | 切换Markdown预览 | markdown.showPreview |
Ctrl + KV | 打开预览到边 | markdown.showPreviewToSide |
Ctrl +` | 切换集成终端 | workbench.action.terminal.toggleTerminal |
键 | 命令 | 命令ID |
---|---|---|
未分配 | 打开用户设置 | workbench.action.openGlobalSettings |
未分配 | 打开工作区设置 | workbench.action.openWorkspaceSettings |
Ctrl + K Ctrl + S | 打开键盘快捷键 | workbench.action.openGlobalKeybindings |
未分配 | 打开用户代码片段 | workbench.action.openSnippets |
Ctrl + K Ctrl + T | 选择颜色主题 | workbench.action.selectTheme |
未分配 | 配置显示语言 | workbench.action.configureLocale |
键 | 命令 | 命令ID |
---|---|---|
F9 | 切换断点 | editor.debug.action.toggleBreakpoint |
F5 | 开始 | workbench.action.debug.start |
F5 | 继续 | workbench.action.debug.continue |
Ctrl + F5 | 开始(无调试) | workbench.action.debug.run |
F6 | 暂停 | workbench.action.debug.pause |
F11 | 步入 | workbench.action.debug.stepInto |
Shift + F11 | 步出 | workbench.action.debug.stepOut |
F10 | 步骤 | workbench.action.debug.stepOver |
Shift + F5 | 停止 | workbench.action.debug.stop |
Ctrl + K Ctrl + I | 显示悬停 | editor.action.showHover |
键 | 命令 | 命令ID |
---|---|---|
Ctrl + Shift + B | 运行构建任务 | workbench.action.tasks.build |
未分配 | 运行测试任务 | workbench.action.tasks.test |
键 | 命令 | 命令ID |
---|---|---|
未分配 | 安装扩展 | workbench.extensions.action.installExtension |
未分配 | 显示已安装的扩展 | workbench.extensions.action.showInstalledExtensions |
未分配 | 显示过期的扩展 | workbench.extensions.action.listOutdatedExtensions |
未分配 | 显示推荐的扩展程序 | workbench.extensions.action.showRecommendedExtensions |
未分配 | 显示热门扩展 | workbench.extensions.action.showPopularExtensions |
未分配 | 更新所有扩展 | workbench.extensions.action.updateAllExtensions |
VS代码中的所有键盘快捷键都可以通过User/keybindings.json
文件进行定制.
要按您想要的方式配置键盘快捷键,请转到文件 > 首选项 > 键盘快捷键下的菜单.(代码 > 首选项 > Mac上的键盘快捷键)
这将打开Default Keyboard Shortcuts
左侧和您的User/keybindings.json
文件,您可以覆盖右侧的默认绑定.
上面的列表并不详尽.更多命令可以在“其他可用命令”中列出Default Keyboard Shortcuts
.
键盘快捷键分派通过分析以JSON表示的规则列表来完成.这里有些例子:
// Keybindings that are active when the focus is in the editor
{ "key": "home", "command": "cursorHome", "when": "editorTextFocus" },
{ "key": "shift+home", "command": "cursorHomeSelect", "when": "editorTextFocus" },
// Keybindings that are complementary
{ "key": "f5", "command": "workbench.action.debug.continue", "when": "inDebugMode" },
{ "key": "f5", "command": "workbench.action.debug.start", "when": "!inDebugMode" },
// 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 (two separate keypress actions)
{ "key": "ctrl+k enter", "command": "workbench.action.keepEditor" },
{ "key": "ctrl+k ctrl+w", "command": "workbench.action.closeAllEditors" },
单独的按键动作).例如:ctrl + k ctrl + c.
当按下一个键:
规则从底部到顶部进行评估.
接受匹配的第一个规则,包括key
和when
.
不再处理任何规则.
如果找到规则并且具有command
集合,command
则执行.
附加User/keybindings.json
规则在运行时附加到默认规则的底部,从而允许它们覆盖默认规则.该User/keybindings.json
文件由VS代码监视,所以在VS代码运行时进行编辑将在运行时更新规则.
该key
是由改性剂和密钥本身.
接受以下修饰符:
平台 | 修饰符 |
---|---|
苹果电脑 | ctrl +,shift +,alt +,cmd + |
视窗 | ctrl +,shift +,alt +,win + |
Linux | ctrl +,shift +,alt +,meta + |
接受以下键:
f1-f19,az,0-9
`,- ,=,[,],\,; ,“,,,.,/
左,上,右,下,pageup,pagedown,结束,首页
选项卡,输入,转义,空格,退格,删除
pausebreak,capslock,insert
numpad0-numpad9,numpad_multiply,numpad_add,nupad_separator
numpad_subtract,numpad_decimal,numpad_divide
VS代码使您可以精确控制通过可选when
子句启用键绑定的时间.如果密钥绑定没有when
子句,则密钥绑定始终是全局可用的.
下面是一些可能的when
子句上下文,其值为Boolean true / false:
上下文名称 | True时 |
---|---|
编辑器上下文 | |
编辑器焦点 | 编辑器有焦点,文本或小部件. |
editorTextFocus | 编辑器中的文本具有焦点(光标闪烁). |
editorHasSelection | 在编辑器中选择文本. |
editorHasMultipleSelections | 选择多个文本区域(多个光标). |
editorReadOnly | 编辑器是只读的. |
editorLangId | 编辑器的关联语言ID匹配时为true.示例:"editorLangId == typescript" . |
textCompareEditorVisible | Diff(比较)视图是可见的. |
模式上下文 | |
inDebugMode | 调试会话正在运行. |
inSnippetMode | 编辑器处于代码段模式. |
inQuickOpen | 快速打开下拉列表具有焦点. |
编辑器小部件上下文 | |
findWidgetVisible | 编辑器查找窗口小部件可见. |
suggestWidgetVisible | 建议小部件(IntelliSense)是可见的. |
suggestWidgetMultipleSuggestions | 显示多个建议. |
renameInputVisible | 重命名输入文本框是可见的. |
referenceSearchVisible | 查找所有参考文献peek窗口打开. |
inReferenceSearchEditor | “查找全部引用”窗口编辑器具有焦点. |
config.editor.stablePeek | 保持打开编辑器(由editor.stablePeek 设置控制). |
quickFixWidgetVisible | 快速修复小部件可见. |
parameterHintsVisible | 参数提示是可见的(由editor.parameterHints 设置控制). |
parameterHintsMultipleSignatures | 显示多个参数提示. |
集成终端上下文 | |
terminalFocus | 集成终端具有焦点. |
全局UI上下文 | |
resourceLangId | 当资源管理器或编辑器标题语言标识匹配时为True.例:"resourceLangId == markdown" |
globalMessageVisible | 消息框在VS代码的顶部可见. |
searchViewletVisible | 搜索视图已打开. |
replaceActive | 搜索视图替换文本框已打开. |
以上列表并不详尽,您可能会看到when
特定VS代码UI的一些上下文Default Keyboard Shortcuts
.
您可以编写一个键绑定规则,目标是删除特定的默认键绑定.有了keybindings.json
,总是可以重新定义VS代码的所有键绑定,但是可能很难做一个小的调整,特别是在重载的键,如Tab或Escape.要删除特定的键绑定,只需添加一个-
到command
和,规则将是一个删除规则.
这里是一个例子:
// In Default Keyboard Shortcuts
...
{ "key": "tab", "command": "tab", "when": ... },
{ "key": "tab", "command": "editor.emmet.action.expandAbbreviation", "when": ... },
{ "key": "tab", "command": "jumpToNextSnippetPlaceholder", "when": ... },
{ "key": "tab", "command": "acceptSelectedSuggestion", "when": ... },
...
// To remove the second rule, for example, add in keybindings.json:
{ "key": "tab", "command": "-editor.emmet.action.expandAbbreviation" }
注意:本节仅涉及键绑定,而不是在编辑器中键入.
上面的键是虚拟键的字符串表示,并且当它们被按下时不必与所产生的字符相关.更确切地说:
参考:https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85)
标签为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
)
等等
不同的键盘布局通常重新定位上述虚拟键或改变按下时产生的字符.当使用与标准美国不同的键盘布局时,Visual Studio代码执行以下操作:
所有的键绑定在UI中使用当前系统的键盘布局呈现.例如,Split Editor
当使用法语(法国)键盘布局现在呈现为Ctrl + *:
编辑keybindings.json
时,VS代码突出显示误导键绑定 - 在文件中使用在标准美式键盘布局下生成的字符表示的键,但是需要在当前系统的键盘布局下按下具有不同标签的键.例如,下面是Default keybindings
使用法语(法国)键盘布局时规则的外观:
还有一个小部件,在编辑时帮助输入密钥绑定规则keybindings.json
.要启动定义按键绑定控件,请按Ctrl + K按Ctrl + K.该窗口小部件监听按键并在文本框及其下面呈现序列化的JSON表示,VS代码在您当前的键盘布局下检测到的键.输入所需的组合键后,您可以按Enter键,然后插入规则片段.
注意: Visual Studio代码在启动时检测您当前的键盘布局,然后缓存此信息.为了获得良好的体验,我们建议您在更改键盘布局时重新启动VS代码.
现在你知道我们的Key绑定支持,接下来是什么...
自定义 - 按需要配置代码 - 主题,设置等
语言支持 - 我们的好,更好,最好的语言网格,看看你可以期望什么
调试 - 这是VS代码真正闪耀
Node.js - 使用示例应用程序的端到端Node.js场景
问:如何找出什么命令绑定到特定的键?
A:在默认快捷键中Quick Outline
,按Ctrl + Shift + O打开
问:如何向操作添加键绑定?例如,添加Ctrl + D以删除行
A:在默认键盘快捷键中找到触发操作的规则,并在User/keybindings.json
文件中写入修改后的版本:
// 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" },
问:如何仅为某些文件类型添加键绑定?
A:editorLangId
在您的when
子句中使用上下文键:
{ "key": "shift+alt+a", "command": "editor.action.blockComment",
"when": "editorTextFocus && editorLangId == csharp" },
问:我修改了我的键绑定User/keybindings.json
,为什么他们不工作?
A:最常见的问题是文件中的语法错误.否则,请尝试删除when
子句或选择不同的子句key
.不幸的是,在这一点上,这是一个试验和错误的过程.