Windows 终端中的自定义操作

重要

从 Windows 终端版本 1.4 开始,keybindings 数组在 settings.json 文件中已重命名为 actions。 仍支持 keybindings 数组以确保向后兼容性,但终端不会在 keybindings中将 keybindings 自动重命名为 actions

可以在 Windows 终端内部创建自定义操作,让你控制你与终端交互的方式。 这些操作将自动添加到命令面板。

操作格式

可以采用以下格式构造操作:

不带参数的命令

{ "command": "commandName", "keys": "modifiers+key" }

例如,此默认设置使用快捷键 alt+f4 关闭终端窗口:

{ "command": "closeWindow", "keys": "alt+f4" }

带参数的命令

{ "command": { "action": "commandName", "argument": "value" }, "keys": "modifiers+key" }

例如,此默认设置使用快捷键 ctrl+shift+1 在终端中打开一个新选项卡,具体取决于下拉菜单中列出的第一个配置文件(通常这将打开 PowerShell 配置文件):

{ "command": { "action": "newTab", "index": 0 }, "keys": "ctrl+shift+1" }


操作属性

可以使用以下属性构造操作。

命令

这是在按下关联的键时执行的命令。

属性名称:

必要性: 必需

接受: 字符串

这会定义用于调用命令的键组合。 一个键可以拥有任意数量的修改键。 下面列出了接受的修改键和键。

如果操作没有键,它将出现在命令面板中,但不能使用键盘调用。

属性名称:

必要性: 可选

接受: 字符串或 array[string]

操作

这会向某些命令添加其他功能。

属性名称:

必要性: 可选

接受: 字符串

名称

这将设置将在命令面板中显示的名称。 如果未提供名称,终端将尝试自动生成名称。

属性名称:

必需:可选

接受: 字符串

图标

这将设置命令面板中显示的图标。

属性名称:

必要性: 可选

接受:字符串形式的文件位置或表情符号



接受的修改键和键

修改键

ctrl+, shift+, alt+, win+

注意

支持使用 Windows 键作为修饰符,系统会保留大多数 win+<key> 键绑定。 如果 OS 已保留该键绑定,终端将永远不会接收该绑定。

修改键

类型
功能键和字母数字键 f1-f24, a-z, 0-9
符号 `, plus, -, =, [, ], \, ;, ', ,, ., /
箭头键 down, left, right, up, pagedown, pageup, pgdn, pgup, end, home
操作键 tab, enter, esc, escape, space, backspace, delete, insert, app, menu
数字键 numpad_0-numpad_9, numpad0-numpad9, numpad_add, numpad_plus, numpad_decimal, numpad_period, numpad_divide, numpad_minus, numpad_subtract, numpad_multiply
浏览器密钥 browser_back, browser_forward, browser_refresh, browser_stop, browser_search, browser_favorites, browser_home

注意:plus 等效。 不能将后者与 numpad_plus 混淆。


应用程序级命令

退出(预览

这会关闭所有打开的终端窗口。 确认对话将显示在当前窗口中,确认要关闭所有窗口。

命令名称:

默认绑定:

{ "command": "quit" }

重要

此功能仅在 Windows 终端预览中可用。

关闭窗口

这会关闭当前窗口和其中的所有选项卡。 如果 confirmCloseAllTabs 设置为 true,则会出现一个确认对话框,以确认你希望关闭所有选项卡。 有关此设置的详细信息,请参阅外观页

命令名称:

默认绑定:

{ "command": "closeWindow", "keys": "alt+f4" }

Windows 终端确认关闭所有选项卡

查找

这将打开搜索对话框。 有关搜索的详细信息,请参阅搜索页

命令名称:

默认绑定:

{ "command": "find", "keys": "ctrl+shift+f" }

查找下一个/上一个搜索匹配项

这样,你可以浏览搜索匹配项。

命令名称:

默认绑定:

{ "command": { "action": "findMatch", "direction": "next" } },
{ "command": { "action": "findMatch", "direction": "prev" } }

“操作”

名称 必要性 接受 说明
direction 必需 "next", "prev" 浏览搜索结果的方向。

打开下拉菜单

这将打开下拉菜单。

命令名称:

默认绑定:

{ "command": "openNewTabDropdown", "keys": "ctrl+shift+space" }

打开设置文件

这将打开设置 UI、自定义设置文件 (settings.json) 或默认设置文件 (defaults.json),具体取决于 target 字段。 如果没有 target 字段,将打开自定义设置文件。

命令名称:

默认绑定:

{ "command": { "action": "openSettings", "target": "settingsUI" }, "keys": "ctrl+," },
{ "command": { "action": "openSettings", "target": "settingsFile" }, "keys": "ctrl+shift+," },
{ "command": { "action": "openSettings", "target": "defaultsFile" }, "keys": "ctrl+alt+," },

“操作”

名称 必要性 接受 说明
target 可选 "settingsFile", "defaultsFile", "settingsUI", "allFiles" 要打开的设置文件。

打开系统菜单

打开窗口左上角的系统菜单。

命令名称:

默认绑定:

{ "command": "openSystemMenu", "keys": "alt+space" }

切换全屏

这允许你在全屏和默认窗口大小之间切换。

命令名称:

默认绑定:

{ "command": "toggleFullscreen", "keys": "alt+enter" },
{ "command": "toggleFullscreen", "keys": "f11" }

切换焦点模式

这样就可以进入“焦点模式”,这会隐藏选项卡和标题栏。

命令名称:

默认绑定:

{ "command": "toggleFocusMode" }

切换“始终位于顶部”模式

你可以这样切换窗口的“始终位于顶部”状态。 在“始终位于顶部”模式下时,窗口将显示在所有其他非最顶层窗口之上。

命令名称:

默认绑定:

{ "command": "toggleAlwaysOnTop" }

发送输入

将任意文本输入发送到 shell。 作为示例,输入 "text\n" 将在 shell 中写入“text”,后跟一个换行符。

可能使用 ANSI 转义序列,但 \x1b 等转义代码必须编写为 \u001b。 例如,"\u001b[A" 的行为就像按下向上键按钮之后。

命令名称:

默认绑定:

此命令当前未绑定在默认设置中

{ "command": { "action": "sendInput", "input": "\u001b[A" }, "keys": "" }

“操作”

名称 必要性 接受 说明
input 必须 字符串 要馈送到 shell 的文本输入。


选项卡管理命令

关闭选项卡

这会关闭给定索引处的选项卡。 如果未提供索引,则使用焦点选项卡的索引。

命令名称:

“操作”

名称 必要性 接受 说明
index 可选 整数 要关闭的选项卡的位置。

关闭其他所有选项卡

这会关闭除索引位置处选项卡之外的所有选项卡。 如果未提供索引,则使用焦点选项卡的索引。

命令名称:

默认绑定:

{ "command": "closeOtherTabs" }

“操作”

名称 必要性 接受 说明
index 可选 整数 要保持打开的选项卡的位置。

关闭索引后的选项卡

这会关闭索引位置处选项卡之后的选项卡。 如果未提供索引,则使用焦点选项卡的索引。

命令名称:

默认绑定:

{ "command": "closeTabsAfter" }

“操作”

名称 必要性 接受 说明
index 可选 整数 要保持打开的最后一个选项卡的位置。

复制选项卡

这会创建当前选项卡的配置文件和目录的副本并打开它。 这不包括修改/添加的 ENV VARIABLES。

命令名称:

默认绑定:

{ "command": "duplicateTab", "keys": "ctrl+shift+d" }

新建选项卡

这将创建一个新选项卡。如果没有任何参数,这将在新选项卡中打开默认配置文件。如果未指定操作,则将使用默认配置文件的等效设置。

命令名称:

默认绑定:

{ "command": "newTab", "keys": "ctrl+shift+t" },
{ "command": { "action": "newTab", "index": 0 }, "keys": "ctrl+shift+1" },
{ "command": { "action": "newTab", "index": 1 }, "keys": "ctrl+shift+2" },
{ "command": { "action": "newTab", "index": 2 }, "keys": "ctrl+shift+3" },
{ "command": { "action": "newTab", "index": 3 }, "keys": "ctrl+shift+4" },
{ "command": { "action": "newTab", "index": 4 }, "keys": "ctrl+shift+5" },
{ "command": { "action": "newTab", "index": 5 }, "keys": "ctrl+shift+6" },
{ "command": { "action": "newTab", "index": 6 }, "keys": "ctrl+shift+7" },
{ "command": { "action": "newTab", "index": 7 }, "keys": "ctrl+shift+8" },
{ "command": { "action": "newTab", "index": 8 }, "keys": "ctrl+shift+9" }

“操作”

名称 必要性 接受 说明
commandline 可选 字符串形式的可执行文件名 可执行文件在选项卡中运行。
startingDirectory 可选 字符串形式的文件夹位置 将在其中打开该选项卡的目录。
tabTitle 可选 字符串 新选项卡的标题。
index 可选 整数 将根据其在下拉列表中的位置打开的配置文件(从 0 开始)。
profile 可选 字符串形式的配置文件名称或 GUID 将根据其 GUID 或名称打开的配置文件。
colorScheme 可选 字符串形式的配色方案名称 要取代配置文件的设置 colorScheme 使用的方案
suppressApplicationTitle 可选 true, false 当设置为 false 时,应用程序可以通过发送标题更改消息来更改选项卡标题。 当设置为 true 时,将禁止显示这些消息。 如果未提供,则将从配置文件的设置继承该行为。 若要输入新的选项卡标题并保留该标题,则必须将此项设置为 true。

打开下一个选项卡

这会打开当前选项卡右侧的选项卡。

命令名称:

默认绑定:

{ "command": "nextTab", "keys": "ctrl+tab" }

“操作”

名称 必要性 接受 说明
tabSwitcherMode 可选 "mru", "inOrder", "disabled" 使用 "tabSwitcherMode" 移动到下一个表。 如果未提供任何模式,请使用全局定义的模式。

打开上一个选项卡

这会打开当前选项卡左侧的选项卡。

命令名称:

默认绑定:

{ "command": "prevTab", "keys": "ctrl+shift+tab" }

“操作”

名称 必要性 接受 说明
tabSwitcherMode 可选 "mru", "inOrder", "disabled" 使用 "tabSwitcherMode" 移动到上一个表。 如果未提供任何模式,请使用全局定义的模式。

这将打开选项卡搜索框。

命令名称:

默认绑定:

此命令当前未绑定在默认设置中

{"command": "tabSearch", "keys": ""}

Windows 终端选项卡搜索

打开特定的选项卡

这会打开一个特定的选项卡,具体取决于索引。

命令名称:

默认绑定:

{ "command": { "action": "switchToTab", "index": 0 }, "keys": "ctrl+alt+1" },
{ "command": { "action": "switchToTab", "index": 1 }, "keys": "ctrl+alt+2" },
{ "command": { "action": "switchToTab", "index": 2 }, "keys": "ctrl+alt+3" },
{ "command": { "action": "switchToTab", "index": 3 }, "keys": "ctrl+alt+4" },
{ "command": { "action": "switchToTab", "index": 4 }, "keys": "ctrl+alt+5" },
{ "command": { "action": "switchToTab", "index": 5 }, "keys": "ctrl+alt+6" },
{ "command": { "action": "switchToTab", "index": 6 }, "keys": "ctrl+alt+7" },
{ "command": { "action": "switchToTab", "index": 7 }, "keys": "ctrl+alt+8" },
{ "command": { "action": "switchToTab", "index": 8 }, "keys": "ctrl+alt+9" }

“操作”

名称 必要性 接受 说明
index 必需 整数 将根据其在选项卡栏中的位置打开的选项卡(从 0 开始)。

重命名选项卡

可使用此命令将选项卡重命名为特定字符串。

命令名称:

默认绑定:

此命令当前未绑定在默认设置中

// Rename a tab to "Foo"
{ "command": { "action": "renameTab", "title": "Foo" }, "keys": "" }

// Reset the tab's name
{ "command": { "action": "renameTab", "title": null }, "keys": "" }

“操作”

名称 必要性 接受 说明
title 可选 字符串 要用于此选项卡的新标题。如果省略,此命令会将选项卡标题还原为其原始值。

打开选项卡重命名文本框

此命令会将选项卡标题更改为一个文本字段,让你可以编辑当前选项卡的标题。清除该文本字段会将选项卡标题重置为当前 shell 实例的默认值。

命令名称:

默认绑定:

{ "command": "openTabRenamer" }

更改选项卡颜色

可使用此命令将选项卡的颜色更改为特定值。

命令名称:

默认绑定:

此命令当前未绑定在默认设置中

// Change the tab's color to a bright magenta
{ "command": { "action": "setTabColor", "color": "#ff00ff" }, "keys": "" }

// Reset the tab's color
{ "command": { "action": "setTabColor", "color": null }, "keys": "" }

“操作”

名称 必要性 接受 说明
color 可选 以十六进制格式表示的字符串:"#rgb""#rrggbb" 要用于此选项卡的新颜色。如果省略,此命令会将选项卡颜色还原为其原始值。

打开选项卡颜色选取器

可使用此命令打开活动选项卡的颜色选取器。可使用颜色选取器在运行时设置选项卡的颜色。

命令名称:

默认绑定:

{ "command": "openTabColorPicker" }

移动选项卡

此命令会“向后”和“向前”移动选项卡,这相当于从左到右 UI 中的“左”和“右”。

命令名称:

默认绑定:

// Move tab backward (left in LTR)
{ "command": { "action": "moveTab", "direction": "backward" } }

// Move tab forward (right in LTR)
{ "command": { "action": "moveTab", "direction": "forward" } }

“操作”

名称 必要性 接受 说明
direction 必需 "backward", "forward" 选项卡将移动的方向。


窗口管理命令

新建窗口

这将创建一个新窗口。 如果没有任何参数,这将在新窗口中打开默认配置文件(而不考虑 windowingBehavior 的设置)。 如果未指定操作,则将使用默认配置文件的等效设置。

命令名称:

默认绑定:

{ "command": "newWindow", "keys": "ctrl+shift+n" },

“操作”

名称 必要性 接受 说明
commandline 可选 字符串形式的可执行文件名 可执行文件在选项卡中运行。
startingDirectory 可选 字符串形式的文件夹位置 将在其中打开该窗口的目录。
tabTitle 可选 字符串 窗口选项卡的标题。
index 可选 整数 将根据其在下拉列表中的位置打开的配置文件(从 0 开始)。
profile 可选 字符串形式的配置文件名称或 GUID 将根据其 GUID 或名称打开的配置文件。
suppressApplicationTitle 可选 true, false 当设置为 false 时,应用程序可以通过发送标题更改消息来更改选项卡标题。 当设置为 true 时,true 将禁止显示这些消息。 如果未提供,则将从配置文件设置继承该行为。

重命名窗口

可使用此命令将窗口重命名为特定字符串。

命令名称:

默认绑定:

此命令当前未绑定在默认设置中

// Rename a window to "Foo"
{ "command": { "action": "renameWindow", "name": "Foo" }, "keys": "" }

// Reset the window's name
{ "command": { "action": "renameWindow", "name": null }, "keys": "" }

“操作”

名称 必要性 接受 说明
name 可选 字符串 要用于此窗口的新名称。 如果省略,此命令会将窗口名称还原为其原始值。

打开窗口重命名对话框

此命令更改将显示一个弹出窗口,可用于编辑当前窗口的名称。 清除文本字段将重置窗口名称。

命令名称:

默认绑定:

{ "command": "openWindowRenamer" }

标识窗口

这会在焦点窗口上弹出一个覆盖层,其中将显示窗口的名称和索引。

命令名称:

默认绑定:

{"command": "identifyWindow", "keys": "" },

标识窗口

这会在所有窗口上弹出一个覆盖层,其中将显示每个窗口的名称和索引。

命令名称:

默认绑定:

此命令当前未绑定在默认设置中

{"command": "identifyWindows" },


窗格管理命令

关闭窗格

这会关闭活动窗格。 如果没有拆分窗格,将关闭当前选项卡。如果只有一个选项卡处于打开状态,则将关闭该窗口。

命令名称:

默认绑定:

{ "command": "closePane", "keys": "ctrl+shift+w" }

移动窗格焦点

这会将焦点更改为其他窗格,具体取决于方向。 如果设置为 direction,则 "previous" 会将焦点移到最近使用的窗格。

命令名称:

默认绑定:

{ "command": { "action": "moveFocus", "direction": "down" }, "keys": "alt+down" },
{ "command": { "action": "moveFocus", "direction": "left" }, "keys": "alt+left" },
{ "command": { "action": "moveFocus", "direction": "right" }, "keys": "alt+right" },
{ "command": { "action": "moveFocus", "direction": "up" }, "keys": "alt+up" },
{ "command": { "action": "moveFocus", "direction": "previous" }, "keys": "ctrl+alt+left" }

“操作”

名称 必要性 接受 说明
direction 必需 "left", "right", "up", "down", "previous" 焦点将移动的方向。

缩放窗格

这会扩展焦点窗格以填充窗口的全部内容。

命令名称:

默认绑定:

{ "command": "togglePaneZoom" }

Windows 终端切换窗格缩放

调整窗格大小

这会更改活动窗格的大小。

命令名称:

默认绑定:

{ "command": { "action": "resizePane", "direction": "down" }, "keys": "alt+shift+down" },
{ "command": { "action": "resizePane", "direction": "left" }, "keys": "alt+shift+left" },
{ "command": { "action": "resizePane", "direction": "right" }, "keys": "alt+shift+right" },
{ "command": { "action": "resizePane", "direction": "up" }, "keys": "alt+shift+up" }

“操作”

名称 必要性 接受 说明
direction 必需 "left", "right", "up", "down" 调整窗格大小的方向。

将窗格标记为只读

可以将窗格标记为只读,这将防止输入进入文本缓冲区。 如果尝试关闭只读窗格或将文本输入到只读窗格中,终端将显示一个弹出警告。

命令名称:

默认绑定:

{ "command": "toggleReadOnlyMode" }

拆分窗格

这会将活动窗格的大小减半,并打开另一个窗格。 如果没有任何参数,这将在新窗格中打开默认配置文件。 如果未指定操作,则将使用默认配置文件的等效设置。

命令名称:

默认绑定:

// In settings.json
{ "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+shift+d" },

// In defaults.json
{ "command": { "action": "splitPane", "split": "horizontal" }, "keys": "alt+shift+-" },
{ "command": { "action": "splitPane", "split": "vertical" }, "keys": "alt+shift+plus" },
{ "command": { "action": "splitPane", "split": "up" } },
{ "command": { "action": "splitPane", "split": "right" } },
{ "command": { "action": "splitPane", "split": "down" } },
{ "command": { "action": "splitPane", "split": "left" } }

“操作”

名称 必要性 接受 说明
split 必需 "vertical", "horizontal", "auto", "up", "right", "down", "left" 窗格的拆分方式。 "auto" 将沿具有最大表面积的方向进行拆分。
commandline 可选 字符串形式的可执行文件名 可执行文件在窗格中运行。
startingDirectory 可选 字符串形式的文件夹位置 将在其中打开该窗格的目录。
tabTitle 可选 字符串 聚焦于新窗格时选项卡的标题。
index 可选 整数 将根据其在下拉列表中的位置打开的配置文件(从 0 开始)。
profile 可选 字符串形式的配置文件名称或 GUID 将根据其 GUID 或名称打开的配置文件。
colorScheme 可选 字符串形式的配色方案名称 要取代配置文件的设置 colorScheme 使用的方案
suppressApplicationTitle 可选 true, false 当设置为 false 时,应用程序可以通过发送标题更改消息来更改选项卡标题。 当设置为 true 时,将禁止显示这些消息。 如果未提供,则将从配置文件的设置继承该行为。
splitMode 可选 "duplicate" 控制窗格拆分的方式。 仅接受 "duplicate",这会将焦点窗格的配置文件复制到新窗格中。
size 可选 Float 指定新窗格的大小,作为当前窗格大小的一小部分。 1.0 将为“所有当前窗格”,并且 0.0 为“无任何父项”。 默认为 0.5

重要

split"up""right""down""left" 选项仅在 "up"中可用。



剪贴板集成命令

复制

这会将所选终端内容复制到剪贴板。 如果选择不存在,则将键同事按下直接发送到终端。

命令名称:

默认绑定:

// In settings.json
{ "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+c" },

// In defaults.json
{ "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+shift+c" },
{ "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+insert" }

“操作”

名称 必要性 接受 说明
singleLine 可选 true, false true 时,复制的内容将复制为单一的一行。 为 false 时,则将从所选文本保留换行符。
copyFormatting 可选 true, false, "all", "none", "html", "rtf" true 时,则所选文本的颜色和字体格式也将复制到剪贴板。 为 false 时,则只会将纯文本复制到剪贴板。 还可以指定要复制的格式。 当为 null 时,将继承全局 "copyFormatting" 行为。

键盘选择(预览版

这会修改现有选定内容。 如果选择不存在,则将键同事按下直接发送到终端。

命令名称:

默认绑定:

// Move by character
{ "command": {"action": "updateSelection", "direction": "left", "mode": "char" }, "keys": "shift+left" },
{ "command": {"action": "updateSelection", "direction": "right", "mode": "char" }, "keys": "shift+right" },
{ "command": {"action": "updateSelection", "direction": "up", "mode": "char" }, "keys": "shift+up" },
{ "command": {"action": "updateSelection", "direction": "down", "mode": "char" }, "keys": "shift+down" },

// Move by word
{ "command": {"action": "updateSelection", "direction": "left", "mode": "word" }, "keys": "ctrl+shift+left" },
{ "command": {"action": "updateSelection", "direction": "right", "mode": "word" }, "keys": "ctrl+shift+right" },

// Move by viewport
{ "command": {"action": "updateSelection", "direction": "left", "mode": "view" }, "keys": "shift+home" },
{ "command": {"action": "updateSelection", "direction": "right", "mode": "view" }, "keys": "shift+end" },
{ "command": {"action": "updateSelection", "direction": "up", "mode": "view" }, "keys": "shift+pgup" },
{ "command": {"action": "updateSelection", "direction": "down", "mode": "view" }, "keys": "shift+pgdn" },

// Move by buffer
{ "command": {"action": "updateSelection", "direction": "up", "mode": "buffer" }, "keys": "ctrl+shift+home" },
{ "command": {"action": "updateSelection", "direction": "down", "mode": "buffer" }, "keys": "ctrl+shift+end" },

“操作”

名称 必要性 接受 说明
direction 必需 "left", "right", "up", "down" 选择终结点将移动的方向。
mode 必需 "char", "word", "view", "buffer" 控制终结点移动的量。

重要

此功能仅在 Windows 终端预览中可用。

粘贴

这会插入复制到剪贴板上的内容。

命令名称:

默认绑定:

// In settings.json
{ "command": "paste", "keys": "ctrl+v" },

// In defaults.json
{ "command": "paste", "keys": "ctrl+shift+v" },
{ "command": "paste", "keys": "shift+insert" }


回滚命令

向上滚动

这会将屏幕向上滚动由 "rowsToScroll" 定义的行数。 如果未提供 "rowsToScroll",它将向上滚动系统默认值定义的量,这与鼠标滚动量相同。

命令名称:

默认绑定:

{ "command": "scrollUp", "keys": "ctrl+shift+up" }

“操作”

名称 必要性 接受 说明
rowsToScroll 可选 整数 要滚动的行数。

向下滚动

这会将屏幕向下滚动由 "rowsToScroll" 定义的行数。 如果未提供 "rowsToScroll",它将向下滚动系统默认值定义的量,这与鼠标滚动量相同。

命令名称:

默认绑定:

{ "command": "scrollDown", "keys": "ctrl+shift+down" }

“操作”

名称 必要性 接受 说明
rowsToScroll 可选 整数 要滚动的行数。

向上滚动一整页

这会将屏幕向上滚动一整页(即窗口的高度)。

命令名称:

默认绑定:

{ "command": "scrollUpPage", "keys": "ctrl+shift+pgup" }

向下滚动一整页

这会将屏幕向下滚动一整页(即窗口的高度)。

命令名称:

默认绑定:

{ "command": "scrollDownPage", "keys": "ctrl+shift+pgdn" }

滚动到最早的历史记录

这会将屏幕向上滚动到输入缓冲区的顶部。

命令名称:

默认绑定:

{ "command": "scrollToTop", "keys": "ctrl+shift+home" }

滚动到最新的历史记录

这会将屏幕向下滚动到输入缓冲区的顶部。

命令名称:

默认绑定:

{ "command": "scrollToBottom", "keys": "ctrl+shift+end" }


视觉对象调整命令

调整字号

这会将文本大小更改为指定的磅值。

命令名称:

默认绑定:

{ "command": { "action": "adjustFontSize", "delta": 1 }, "keys": "ctrl+=" },
{ "command": { "action": "adjustFontSize", "delta": -1 }, "keys": "ctrl+-" },
{ "command": { "action": "adjustFontSize", "delta": 1 }, "keys": "ctrl+numpad_plus" },
{ "command": { "action": "adjustFontSize", "delta": -1 }, "keys": "ctrl+numpad_minus" }

“操作”

名称 必要性 接受 说明
delta 必需 整数 每次命令调用的大小更改量。

重置字号

这会将文本大小重置为默认值。

命令名称:

默认绑定:

{ "command": "resetFontSize", "keys": "ctrl+0" },
{ "command": "resetFontSize", "keys": "ctrl+numpad_0" }

切换像素着色器效果

这会切换终端中启用的任何像素着色器效果。 如果用户通过 experimental.pixelShaderPath 指定了有效着色器,此操作将打开/关闭该着色器。 这还将切换“怀旧式终端效果”,它通过配置文件设置 experimental.retroTerminalEffect 启用。

命令名称:

默认绑定:

{ "command": "toggleShaderEffects" }

注意

版本 1.6 及更高版本中不再提供 toggleRetroEffect 操作。 建议改用 toggleShaderEffects

设置配色方案

更改活动配色方案。

命令名称:

“操作”

名称 必要性 接受 说明
colorScheme 必须 字符串 要应用的配色方案的 name

示例绑定:

{ "command": { "action": "setColorScheme", "colorScheme": "Campbell" }, "keys": "" }


全局命令

全局调出

这是可在 OS 中全局运行的特殊操作,而不只是在终端窗口的上下文中。 按下时,此操作会调出终端窗口。 调出哪个窗口、在哪里调出窗口、调出窗口时它如何表现,由此操作的属性控制。

说明

  • 在终端运行时,绑定到 globalSummon 操作的任何键在其他应用程序中都无效 - 它们将始终以终端窗口为焦点。

  • 如果对于给定 keys 已使用 RegisterHotKey API 注册其他正在运行的应用程序,终端将无法侦听这些按键。

  • 终端的提升和未提升的实例将无法同时注册相同的密钥。 这同样适用于终端的预览和稳定版本 - 始终以要启动的第一个版本为准。

  • 仅当终端的实例已在运行时,这些按键才起作用。 若要在登录时自动启动终端,请参阅 startOnUserLogin

命令名称:

默认绑定:

此命令当前未绑定在默认设置中

{ "keys": "", "command": { "action": "globalSummon" } }

“操作”

名称 必要性 接受 说明
desktop 可选 any, toCurrent, onCurrent 这会控制终端应如何与虚拟桌面进行交互。
  • "any":将窗口保留在已打开的桌面上 - 将在窗口激活时切换到该桌面。
  • "toCurrent" ("toCurrent"):将窗口移到当前虚拟桌面。
  • "onCurrent":仅当窗口已处于当前虚拟桌面上时才调出它。
monitor 可选 any, toCurrent, toMouse 这会控制要由/向其中调出窗口的监视器。
  • "any":调出最近使用的窗口,无论它当前处于哪个监视器。
  • "toCurrent":在包含当前前景窗口的监视器中调出最近使用的窗口。
  • "toMouse""toMouse"):将最近使用的窗口获得到鼠标光标所在的监视器。
name 可选 字符串 省略(默认)时,请使用 desktop 查找相应的最近使用的窗口。 提供时,调出其名称或 ID 与给定 name 值匹配的窗口。 如果不存在这样的窗口,则创建具有该名称的新窗口。
dropdownDuration 可选 整数 默认为 0。 如果提供了正数,则使用持续 dropdownDuration 毫秒的动画,将窗口从屏幕顶部“滑入”。 200 是此设置的合理值。
toggleVisibility 可选 true, false 默认为 true。 如果为 true,则当窗口当前处于前景窗口时,按下为此操作分配的键将会关闭(最小化)窗口。 如果为 false,则按下分配的键只会使窗口进入前景。

namemonitordesktop 一起提供时,name 的行为方式如下:

  • desktop
    • "any":中转到已打开给定窗口的桌面。
    • "toCurrent":如果该窗口位于另一个虚拟桌面上,则将其移动到当前活动桌面上。
    • "onCurrent":如果该窗口位于另一个虚拟桌面上,则将其移动到当前活动桌面上。
  • monitor
    • "any":将该窗口保留在已打开的显示器上。
    • "toCurrent":如果窗口位于另一个监视器上,则将其移动到具有当前前景窗口的监视器。
    • "toMouse":如果窗口位于另一个监视器上,则将其移动到鼠标光标所在的监视器。

desktopmonitor 属性可以通过下列方式进行组合:

组合 "desktop": "any" "desktop": "toCurrent" "desktop": "onCurrent" 不包含的信息
"monitor": "any" 转到窗口所在的桌面(保留位置不动) 将窗口移动到此桌面(保留位置不动) 如果此桌面上没有窗口:
  • 在默认位置创建一个新的窗口
或者:
  • 激活此桌面上的操作(不要移动它)
调出 MRU 窗口
"monitor": "toCurrent" 转到窗口所在的桌面,移动到前景窗口所在的监视器 将窗口移动到此桌面,移动到前景窗口所在的监视器 如果此桌面上没有窗口:
  • 创建新的窗口
或者:
  • 激活此桌面上的操作,并将其移动到前景窗口
将 MRU 窗口调出到前景窗口所在的监视器
"monitor": "toMouse" 转到窗口所在的桌面,移动到鼠标所在的监视器 将窗口移动到此桌面,移动到鼠标所在的监视器 如果此桌面上没有窗口:
  • 创建新的窗口
或者:
  • 激活此桌面上的操作,并将其移动到鼠标所在的监视器
将 MRU 窗口调出到鼠标所在的监视器
不包括 保留在原位置 移动到当前桌面 仅在当前桌面上 不可用

示例


// Summon the most recently used (MRU) window, to the current virtual desktop,
// to the monitor the mouse cursor is on, without an animation. If the window is
// already in the foreground, then minimize it.
{ "keys": "ctrl+1", "command": { "action": "globalSummon" } },

// Summon the MRU window, by going to the virtual desktop the window is
// currently on. Move the window to the monitor the mouse is on.
{ "keys": "ctrl+2", "command": { "action": "globalSummon", "desktop": "any" } },

// Summon the MRU window to the current desktop, leaving the position of the window untouched.
{ "keys": "ctrl+3", "command": { "action": "globalSummon", "monitor": "any" } },

// Summon the MRU window, by going to the virtual desktop the window is
// currently on, leaving the position of the window untouched.
{ "keys": "ctrl+4", "command": { "action": "globalSummon", "desktop": "any", "monitor": "any" } },

// Summon the MRU window with a dropdown duration of 200ms.
{ "keys": "ctrl+5", "command": { "action": "globalSummon", "dropdownDuration": 200 } },

// Summon the MRU window. If the window is already in the foreground, do nothing.
{ "keys": "ctrl+6", "command": { "action": "globalSummon", "toggleVisibility": false } },

// Summon the window named "_quake". If no window with that name exists, then create a new window.
{ "keys": "ctrl+7", "command": { "action": "globalSummon", "name": "_quake" } }

打开 quake 模式窗口

此操作是 globalSummon 操作的一种特殊变体。 它专门调出 quake 窗口。 这是以下 globalSummon 操作的简写:

{
"keys": "win+`",
"command": {
"action": "globalSummon",
"name": "_quake",
"dropdownDuration": 200,
"toggleVisibility": true,
"monitor": "toMouse",
"desktop": "toCurrent"
}
}

如果你想更改 quakeMode 操作的行为,建议使用你喜欢的设置在 actions 中创建新的 globalSummon 条目。

命令名称:

默认绑定:

{ "keys": "win+`", "command": { "action": "quakeMode" } }

Windows 终端 quake 模式



运行多个操作(预览版

此操作允许用户将多个顺序操作绑定到一个命令。

命令名称:

“操作”

名称 必要性 接受 说明
actions 必需 操作数组 要运行的 action 的列表。

示例

{ "name": "Create My Layout", "command": { 
    "action": "multipleActions",
    "actions": [
        // Create a new tab with 3 panes
        { "action": "newTab", "tabTitle": "Work", "colorScheme": "One Half Dark" },
        { "action": "splitPane", "split": "vertical", "profile": "Windows PowerShell", "tabTitle": "Work", "colorScheme": "Campbell Powershell", },
        { "action": "splitPane", "split": "horizontal", "profile": "Windows PowerShell", "tabTitle": "Work", "colorScheme": "Campbell Powershell", },

        // Create a second tab
        { "action": "newTab", "tabTitle": "Misc"},

        // Go back to the first tab and zoom the first pane
        { "action": "prevTab", "tabSwitcherMode": "disabled" },
        { "action": "moveFocus", "direction": "first"},
        "togglePaneZoom"
        ]
}}

重要

此功能仅在 Windows 终端预览中可用。



取消绑定密钥(禁用键绑定)

可以从任何命令禁用键绑定或“取消绑定”关联的键。 使用基础终端应用程序(例如 VIM)时,这可能是必需的。 未绑定的键将传递到基础终端。

命令名称:

使用未绑定的示例:

例如,若要取消绑定快捷键 AltShift-" 和 -+++=",请在 +的 actions 部分包含这些命令。

{
    "actions": [
        { "command": "unbound", "keys": "alt+shift+-" },
        { "command": "unbound", "keys": "alt+shift+=" }
    ]
}

使用 null 的示例:

还可以通过将 "command" 设置为 null,取消绑定默认绑定到操作的击键。 这还会允许击键与命令行应用程序设置关联,而不执行默认操作。

{
   "command" : null, "keys" : ["ctrl+v"]
},

用例方案:

Windows 终端使用快捷键绑定 Ctrl+V 作为粘贴命令。 使用 WSL 命令行时,可能需要使用 Vim 这样的 Linux 应用程序来编辑文件。 但是,Vim 依赖于 Ctrl+v 键绑定来使用 blockwise 视觉模式。 此键绑定将被阻止,并且 Windows 终端粘贴命令优先,除非在 settings.json 文件中调整了 unbound 设置,使得键绑定将与 Vim 命令行应用关联,而不是与 Windows 终端绑定关联。