爱生活,爱编程,学习使我快乐
Visual Studio Code允许您直接从键盘执行大多数任务。此页面列出了默认绑定(键盘快捷键),并介绍了如何更新它们。
注意:如果您在Mac上访问此页面,您将看到Mac的键绑定。如果您使用Windows或Linux访问,您将看到该平台的密钥。如果您需要另一个平台的键绑定,请将鼠标悬停在您感兴趣的键上。
Visual Studio Code使用“ 键盘快捷键”编辑器提供丰富而简单的键盘快捷键编辑体验。它列出了包含和不包含键绑定的所有可用命令,您可以使用可用的操作轻松更改/删除/重置其键绑定。它顶部还有一个搜索框,可帮助您查找命令或键绑定。您可以通过转到文件 > 首选项 > 键盘快捷方式下的菜单打开此编辑器。(代码 > 首选项 > macOS上的键盘快捷键)
最重要的是,您可以根据键盘布局查看键绑定。例如,当布局更改为德语时,美式键盘布局中的键绑定Cmd + \
将显示为|Ctrl + Shift + Alt + Cmd + 7
。输入键绑定的对话框将根据键盘布局分配正确和所需的键绑定。
要进行更高级的键盘快捷键自定义,请阅读高级自定义。
键盘快捷键对提高工作效率至关重要,改变键盘输入习惯可能很困难。为此,“ 文件” > “首选项” >“键映射扩展”会显示常用键盘映射扩展的列表。这些扩展修改了VS Code快捷方式以匹配其他编辑器的快捷方式,因此您无需学习新的键盘快捷方式。市场中还有一个Keymaps扩展类别。
VIM
2.9M
vscodevim
Visual Studio Code的Vim仿真
Sublime Text Keymap …
837.2K
MS-vscode
将Sublime Text设置和键绑定导入…
Atom键映射
368.4K
MS-vscode
Visual Studio Code的流行Atom键绑定
Visual Studio键映射
173.9K
MS-vscode
VS Code的流行Visual Studio键绑定。
提示:点击上方的扩展图块,阅读说明和评论,以确定最适合您的扩展程序。在市场中查看更多内容。
我们还有这些键盘快捷键的可打印版本。帮助 > 键盘快捷键参考显示适合打印的精简PDF版本作为简单参考。
以下是三个特定于平台的版本的链接:
如果您安装了许多扩展程序或者已经自定义了键盘快捷键,则有时会出现键绑定冲突,其中相同的键盘快捷键映射到多个命令。这可能会导致令人困惑的行为,尤其是当您在编辑器中移动时,不同的键绑定进入和超出范围。
该键盘快捷键编辑器有一个上下文菜单命令显示了冲突,这将筛选基于键盘快捷键来显示冲突的键绑定。
选择一个您认为过载的键绑定命令,您可以看到是否定义了多个命令,键绑定的来源以及它们何时处于活动状态。
VS Code中的所有键盘快捷键都可以通过该keybindings.json
文件进行自定义。
keybindings.json
。keybindings.json
可以覆盖右侧默认绑定的文件。键盘快捷键调度是通过分析以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" },
每条规则包括:
key
描述按下的键。command
包含要执行的命令的标识符。when
子句,将根据当前上下文进行求值。通过用空格分隔两个按键来描述和弦(两个单独的按键动作)。例如,按下|Ctrl + K |Ctrl + C键
。
按下某个键时:
key
和匹配的规则when
。command
集合,command
则执行该规则。附加keybindings.json
规则在运行时附加到默认规则的底部,从而允许它们覆盖默认规则。keybindings.json
VS Code会监视该文件,因此在VS Code运行时对其进行编辑将在运行时更新规则。
该key
由改性剂和密钥本身的。
接受以下修饰符:
平台 | 修饰符 |
---|---|
macOS | Ctrl+, Shift+, Alt+, Cmd+ |
Windows | Ctrl+, Shift+, Alt+, Win+ |
Linux | Ctrl+, Shift+, Alt+, Meta+ |
接受以下键:
f1-f19,az,0-9
`,- ,=,[,],\,; ,',,,。,/ /
左,向上,向右,向下,PageUp键,PageDown键,结束,回家
选项卡,输入,转义,空格,退格键,删除
pausebreak,CapsLock键,插入
numpad0-numpad9,numpad_multiply,numpad_add,numpad_separator
numpad_subtract,numpad_decimal,numpad_divide
您可以使用参数调用命令。如果您经常对特定文件或文件夹执行相同的操作,这将非常有用。您可以添加自定义键盘快捷键以完全按照您的意愿执行操作。
以下是重写Enter键以打印某些文本的示例:
{
"key": "enter", "command": "type",
"args": { "text": "Hello World" },
"when": "editorTextFocus"
}
type命令将{"text": "Hello World"}
作为其第一个参数接收,并将“Hello World”添加到文件中,而不是生成默认命令。
有关带参数的命令的更多信息,请参阅复杂命令。
您可以编写一个目标是删除特定默认密钥绑定的密钥绑定规则。有了keybindings.json
它,总是可以重新定义VS Code的所有键绑定,但是进行小的调整是非常困难的,特别是在重载键(如Tab
或Escape
)周围。要删除特定的密钥绑定,请将其添加-到command
该规则,该规则将是删除规则。
这是一个例子:
// In Default Keyboard Shortcuts
...
{ "key": "tab", "command": "tab", "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": "-jumpToNextSnippetPlaceholder" }
注意:本节仅涉及键绑定,而不涉及在编辑器中键入。
上面的键是虚拟键的字符串表示,并不一定与按下它们时产生的字符有关。更确切地说:
Reference: Virtual-Key Codes (Windows)
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.
不同的键盘布局通常会重新定位上面的虚拟键或更改按下它们时产生的字符。使用与标准美国不同的键盘布局时,Visual Studio代码执行以下操作:
使用当前系统的键盘布局在UI中呈现所有键绑定。例如,Split Editor
使用法语(法国)时,键盘布局现在呈现为|Ctrl + *
:
在编辑时keybindings.json
,VS Code会突出显示误导性的键绑定 – 那些在文件中表示的字符与在标准美国键盘布局下生成的字符,但需要在当前系统的键盘布局下按下具有不同标签的键。例如,以下是使用法语(法国)键盘布局时默认键盘快捷键规则的外观:
还有一个小部件可以在编辑时帮助输入键绑定规则keybindings.json
。要启动定义键绑定控件,请按|Ctrl + K
按|Ctrl + K
。小部件侦听按键并在文本框中及其下方呈现序列化的JSON表示,即VS Code在当前键盘布局下检测到的键。键入所需的组合键后,可以按Enter键
并插入规则片段。
注意:在Linux上,Visual Studio Code会在启动时检测您当前的键盘布局,然后缓存此信息。为了获得良好的体验,如果您更改键盘布局,我们建议您重新启动VS Code。
使用扫描码,可以定义不随键盘布局的变化而改变的键绑定。例如:
{
"key": "cmd+[Slash]",
"command": "editor.action.commentLine",
"when": "editorTextFocus"
}
接受的扫描码:
[F1]-[F19], [KeyA]-[KeyZ], [Digit0]-[Digit9]
[Backquote], [Minus], [Equal], [BracketLeft], [BracketRight], [Backslash], [Semicolon], [Quote], [Comma], [Period], [Slash]
[ArrowLeft], [ArrowUp], [ArrowRight], [ArrowDown], [PageUp], [PageDown], [End], [Home]
[Tab], [Enter], [Escape], [Space], [Backspace], [Delete]
[Pause], [CapsLock], [Insert]
[Numpad0]-[Numpad9], [NumpadMultiply], [NumpadAdd], [NumpadComma]
[NumpadSubtract], [NumpadDecimal], [NumpadDivide]
通过可选when
子句,VS Code可以很好地控制何时启用密钥绑定。如果您的密钥绑定没有when
子句,则密钥绑定始终全局可用。
下面是一些可能的when
子句上下文,它们计算为布尔值true / false
:
上下文名称 | 真为true时 |
---|---|
编辑器背景 | |
editorFocus | 编辑器具有焦点,文本或小部件。 |
editorTextFocus | 编辑器中的文本具有焦点(光标闪烁)。 |
textInputFocus | 任何编辑器都有焦点(常规编辑器,调试REPL等)。 |
inputFocus | 任何文本输入区域都有焦点(编辑器或文本框)。 |
editorHasSelection | 在编辑器中选择文本。 |
editorHasMultipleSelections | 选择多个文本区域(多个光标)。 |
editorReadOnly | 编辑器是只读的。 |
editorLangId | 当编辑器的相关语言ID匹配时为True 。示例:"editorLangId == typescript" 。 |
isInDiffEditor | 活动编辑器是差异编辑器。 |
操作系统上下文 | |
isLinux | 操作系统是Linux时是真的 |
isMac | 操作系统是macOS时为真 |
isWindows | 操作系统是Windows时为True |
isWeb | 从Web访问编辑器时为True |
列出上下文 | |
listFocus | 列表有焦点。 |
listSupportsMultiselect | 列表支持多选。 |
listHasSelectionOrFocus | 列表具有选择或焦点。 |
listDoubleSelection | 列表可以选择2个元素。 |
listMultiSelection | 列表包含多个元素的选择。 |
列出上下文 | |
listFocus | 列表有焦点。 |
listSupportsMultiselect | 列表支持多选。 |
listHasSelectionOrFocus | 列表具有选择或焦点。 |
listDoubleSelection | 列表可以选择2个元素。 |
listMultiSelection | 列表包含多个元素的选择。 |
模式背景 | |
inDebugMode | 调试会话正在运行。 |
debugType | 调试类型匹配时为True。示例:"debugType == 'node'" 。 |
inSnippetMode | 编辑器处于代码段模式。 |
inQuickOpen | Quick Open下拉列表具有焦点。 |
资源背景 | |
resourceScheme | 当资源Uri方案匹配时为True。例:"resourceScheme == file" |
resourceFilename | 当Explorer或编辑器文件名匹配时为True。例:"resourceFilename == gulpfile.js" |
resourceExtname | 当Explorer或编辑器文件扩展名匹配时为True。例:"resourceExtname == .js" |
resourceLangId | 当Explorer或编辑器标题语言Id匹配时为True 。例:"resourceLangId == markdown" |
isFileSystemResource | 当Explorer或编辑器文件是可以从文件系统提供程序处理的文件系统资源时为True |
resourceSet | 设置资源管理器或编辑器文件时为True |
resource | 资源管理器或编辑器文件的完整Uri |
资源管理器上下文 | |
explorerViewletVisible | 如果Explorer视图可见,则为True。 |
explorerViewletFocus | 如果Explorer视图具有键盘焦点,则为True。 |
filesExplorerFocus | 如果文件资源管理器部分具有键盘焦点, |
openEditorsFocus | 如果OPEN EDITORS部分具有键盘焦点,则为True。 |
explorerResourceIsFolder | 如果在资源管理器中选择了文件夹,则为True。 |
编辑器小部件上下文 | |
findWidgetVisible | 编辑器查找窗口小部件可见 |
suggestWidgetVisible | 建议小部件(IntelliSense)可见。 |
suggestWidgetMultipleSuggestions | 显示多个建议。 |
renameInputVisible | 重命名输入文本框是可见的。 |
referenceSearchVisible | Peek References peek窗口打开。 |
inReferenceSearchEditor | Peek References peek窗口编辑器具有焦点。 |
config.editor.stablePeek | 保持窥视编辑器打开(通过editor.stablePeek设置控制)。 |
quickFixWidgetVisible | 快速修复小部件可见。 |
parameterHintsVisible | 参数提示可见(通过editor.parameterHints.enabled设置控制)。 |
parameterHintsMultipleSignatures | 显示多个参数提示。 |
集成终端上下文 | |
terminalFocus | 集成终端具有重点。 |
terminalIsOpen | 集成终端开放。 |
全局UI上下文 | |
notificationFocus | 通知具有键盘焦点。 |
notificationCenterVisible | VS Code右下方显示通知中心。 |
notificationToastsVisible | 在VS Code的右下角可以看到通知Toast。 |
searchViewletVisible | 搜索视图已打开。 |
sideBarVisible | 侧栏显示。 |
sideBarFocus | Side Bar有焦点。 |
panelFocus | 小组有重点。 |
inZenMode | 窗口处于Zen模式。 |
isCenteredLayout | 编辑器处于居中布局模式。 |
inDebugRepl | 焦点在Debug Console REPL中。 |
workspaceFolderCount | 工作区文件夹数。 |
replaceActive | 搜索视图替换文本框已打开。 |
view | 视图标识符匹配时为True。示例:”view == myViewsExplorerID”。 |
viewItem | 当viewItem上下文匹配时为true。示例: “viewItem == someContextValue”。 |
isFullscreen | 窗口处于全屏状态时为True。 |
focusedView | 当前焦点视图的标识符。 |
canNavigateBack | 如果可以返回,则为True。 |
canNavigateForward | 如果可以向前导航,则为True。 |
canNavigateToLastEditLocation | 如果可以导航到最后一个编辑位置,则为True。 |
全局编辑器UI上下文 | |
textCompareEditorVisible | 至少有一个diff(比较)编辑器可见。 |
textCompareEditorActive | diff(比较)编辑器处于活动状态。 |
editorIsOpen | 如果一个编辑器打开,则为True。 |
groupActiveEditorDirty | 当组中的活动编辑器变脏时为True。 |
groupEditorsCount | 组中的编辑者数量。 |
activeEditorGroupEmpty | 如果活动编辑器组没有编辑器,则为True。 |
activeEditorGroupIndex | 组中活动编辑器的索引(以…开头1)。 |
activeEditorGroupLast | 当组中的活动编辑器是最后一个时,为True。 |
multipleEditorGroups | 当存在多个编辑器组时为True。 |
editorPinned | 当组中的活动编辑器固定时(不在预览模式下),则为True。 |
activeEditor | 组中活动编辑器的标识符。 |
配置设置上下文 | |
config.editor.minimap.enabled | 设置为时editor.minimap.enabled 为真true 。 |
注意:您可以使用任何用户或工作空间设置来评估带有前缀的布尔值
"config."
。
上面的列表并不详尽,您可能会when
在默认键盘快捷键中看到特定VS Code UI的某些上下文。
您可以使用仅在特定视图或面板可见时启用的键绑定。
上下文名称 | 真的时候 |
---|---|
activeViewlet | 视图可见时为真。例:"activeViewlet == 'workbench.view.explorer'" |
activePanel | 面板可见时为真。例:"activePanel == 'workbench.panel.output'" |
focusedView | 当视图聚焦时为真。例:"focusedView == myViewsExplorerID |
查看标识符:
面板标识符:
如果您想要仅在特定视图或面板具有焦点时启用的键绑定,请使用sideBarFocus
或panelFocus
与activeViewlet
或组合使用activiewFocus
。
例如,仅当文件资源管理器具有焦点时,下面的when子句才为真:
"sideBarFocus && activeViewlet == 'workbench.view.explorer'"
条款有一个键值对运算符when
。该表达式key =~ value
将右侧视为正则表达式以匹配左侧。例如,要为所有Docker文件提供上下文菜单项,可以使用:
"when": "resourceFilename =~ /docker/"
该editor.action.codeAction
命令允许您为特定的重构(代码操作)配置键绑定。例如,下面的键绑定会触发Extract函数重构代码操作:
{
"key": "ctrl+shift+r ctrl+e",
"command": "editor.action.codeAction",
"args": {
"kind": "refactor.extract.function"
}
}
这在Refactoring主题中有详细介绍,您可以在其中了解不同类型的代码操作以及在多个可能的重构情况下如何对它们进行优先级排序。
注意:假设标准的美式键盘布局,将呈现以下键。如果您使用不同的键盘布局,请阅读以下内容。您可以在命令选项板(视图 - > 命令选项板)或键盘快捷键编辑器(文件 > 首选项 > 键盘快捷键)中查看 VS代码中当前活动的键盘快捷键。
键 | 命令 | 命令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 + L | 选择当前行 | expandLineSelection |
Ctrl + Alt + Down | 在下面插入光标 | editor.action.insertCursorBelow |
Ctrl + Alt + Up | 在上方插入光标 | editor.action.insertCursorAbove |
Ctrl + Shift + \ | 跳转到匹配的括号 | editor.action.jumpToBracket |
Ctrl +] | 缩进线 | editor.action.indentLines |
Ctrl + [ | Outdent Line | 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 +] | 展开(展开)所有子区域 | editor.unfoldRecursively |
Ctrl + K Ctrl + 0 | 折叠(折叠)所有区域 | editor.foldAll |
Ctrl + K Ctrl + J. | 展开(展开)所有区域 | 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 |
Enter | 找下一个 | editor.action.nextMatchFindAction |
Shift + Enter | 找到上一个 | 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 +空格键 | 触发建议 | editor.action.triggerSuggest |
Ctrl + Shift +空格 | 触发参数提示 | editor.action.triggerParameterHints |
SHIFT + ALT + F | 格式文档 | editor.action.formatDocument |
Ctrl + K Ctrl + F. | 格式选择 | editor.action.formatSelection |
F12 | 转到定义 | editor.action.revealDefinition |
Ctrl + K Ctrl + I. | 显示悬停 | editor.action.showHover |
Alt + F12 | 窥视定义 | editor.action.peekDefinition |
Ctrl + K F12 | 打开定义到一边 | editor.action.revealDefinitionAside |
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 +右 | 展开AST选择 | editor.action.smartSelect.expand |
Shift + Alt +左 | 收缩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.nextInFiles |
Shift + F8 | 转到上一个错误或警告 | editor.action.marker.prevInFiles |
Ctrl + Shift + P或F1 | 显示所有命令 | workbench.action.showCommands |
Ctrl + Shift + Tab键 | 导航编辑器组历史记录 | workbench.action.openPreviousRecentlyUsedEditorInGroup |
Alt +左 | 回去 | workbench.action.navigateBack |
Alt +左 | 返回快速输入 | workbench.action.quickInputBack |
Alt +右 | 直走 | 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 |
未分配 | 在编辑器组之间循环 | workbench.action.navigateEditorGroups |
Ctrl + \ | 拆分编辑器 | workbench.action.splitEditor |
Ctrl + 1 | 专注于第一编辑组 | workbench.action.focusFirstEditorGroup |
Ctrl + 2 | 专注于第二编辑组 | workbench.action.focusSecondEditorGroup |
Ctrl + 3 | 专注于第三编辑组 | workbench.action.focusThirdEditorGroup |
未分配 | 专注于左派编辑组 | workbench.action.focusPreviousGroup |
未分配 | 专注于权利编辑组 | workbench.action.focusNextGroup |
Ctrl + Shift + PageUp | 向左移动编辑器 | workbench.action.moveEditorLeftInGroup |
Ctrl + Shift + PageDown | 向右移动编辑器 | workbench.action.moveEditorRightInGroup |
Ctrl + K向左 | 向左移动活动编辑器组 | workbench.action.moveActiveEditorGroupLeft |
Ctrl + K右 | 将Active Editor Group右移 | workbench.action.moveActiveEditorGroupRight |
Ctrl + Alt +右 | 将编辑器移动到下一组 | workbench.action.moveEditorToNextGroup |
Ctrl + Alt +左 | 将编辑器移动到上一组 | workbench.action.moveEditorToPreviousGroup |
键 | 命令 | 命令ID |
---|---|---|
CTRL + N | 新文件 | workbench.action.files.newUntitledFile |
Ctrl + O | 打开文件… | workbench.action.files.openFile |
Ctrl + S | 保存 | workbench.action.files.save |
Ctrl + KS | 保存全部 | workbench.action.files.saveAll |
Ctrl + Shift + S | 另存为… | workbench.action.files.saveAs |
Ctrl + F4 | 关 | workbench.action.closeActiveEditor |
未分配 | 关闭他人 | workbench.action.closeOtherEditors |
Ctrl + KW | 关闭组 | workbench.action.closeEditorsInGroup |
未分配 | 关闭其他组 | workbench.action.closeEditorsInOtherGroups |
未分配 | 关闭组左侧 | workbench.action.closeEditorsToTheLeft |
未分配 | 关闭组到右 | 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 |
未分配 | 比较打开的文件 | workbench.files.action.compareFileWith |
键 | 命令 | 命令ID |
---|---|---|
F11 | 切换全屏 | workbench.action.toggleFullScreen |
Ctrl + KZ | 切换Zen模式 | workbench.action.toggleZenMode |
Escape Escape | 离开Zen Mode | 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 + F | 显示搜索 | workbench.view.search |
CTRL + SHIFT + G | 显示源代码管理 | workbench.view.scm |
Ctrl + Shift + d | 显示调试 | workbench.view.debug |
Ctrl + Shift + X | 显示扩展程序 | workbench.view.extensions |
Ctrl + Shift + U | 显示输出 | workbench.action.output.toggleOutput |
Ctrl + Q | 快速打开视图 | workbench.action.quickOpenView |
CTRL + SHIFT + C | 打开新命令提示符 | workbench.action.terminal.openNativeConsole |
CTRL + SHIFT + V | 切换Markdown预览 | markdown.showPreview |
Ctrl + KV | 打开侧面预览 | markdown.showPreviewToSide |
Ctrl +` | 切换集成终端 | workbench.action.terminal.toggleTerminal |
键 | 命令 | 命令ID |
---|---|---|
Ctrl + Shift + F | 显示搜索 | workbench.view.search |
Ctrl + Shift + H | 替换文件 | workbench.action.replaceInFiles |
Alt + C | 切换匹配案例 | toggleSearchCaseSensitive |
ALT + W | 切换匹配整个单词 | toggleSearchWholeWord |
ALT + R | 切换使用正则表达式 | toggleSearchRegex |
CTRL + SHIFT + J | 切换搜索详细信息 | workbench.action.search.toggleQueryDetails |
F4 | 关注下一个搜索结果 | search.action.focusNextSearchResult |
Shift + F4 | 关注上一个搜索结果 | search.action.focusPreviousSearchResult |
Up | 显示下一个搜索字词 | history.showNext |
Down | 显示上一个搜索词 | history.showPrevious |
键 | 命令 | 命令ID |
---|---|---|
Ctrl +, | 打开设置 | workbench.action.openSettings |
未分配 | 打开工作区设置 | 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.debug.action.showDebugHover |
键 | 命令 | 命令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 |
既然您了解了我们的Key绑定支持,那么下一步是什么……
在默认键盘快捷键中,Quick Outline|Ctrl + Shift + O
打开
查找在默认键盘快捷键中触发操作的规则,并在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"
},
使用子句中的editorLangId
上下文键when
:
{
"key": "shift+alt+a",
"command": "editor.action.blockComment",
"when": "editorTextFocus && editorLangId == csharp"
},
keybindings.json
,为什么它们不起作用?最常见的问题是文件中的语法错误。否则,请尝试删除该when
条款或选择其他条款key
。不幸的是,在这一点上,这是一个试错过程。
文章来源:
https://code.visualstudio.com/docs/getstarted/keybindings