Windows 终端 中的自定义操作和键绑定
可以在 Windows 终端内部创建自定义操作,让你控制你与终端交互的方式。 这些操作将自动添加到命令面板。
操作格式
可以采用以下格式构造操作:
不带参数的命令
{ "command": "commandName", "id": "User.MyCommand" }
例如,此默认设置使用快捷键 Alt+F4 关闭终端窗口:
{ "command": "closeWindow", "id": "User.MyCloseWindow" }
带参数的命令
{ "command": { "action": "commandName", "argument": "value" }, "id": "User.MyCommand" }
例如,此默认设置使用快捷键 Ctrl+Shift+1 在终端中打开一个新选项卡,具体取决于下拉菜单中列出的第一个配置文件(通常这将打开 PowerShell 配置文件):
{ "command": { "action": "newTab", "index": 0 }, "id": "User.MyNewTabAction" }
包含命令行参数的命令
{ "command": { "action": "wt", "commandline": "value" }, "keys": "modifiers+key" }
例如,此默认设置通过快捷键 Ctrl+Shift+O 使用 wt
打开新的 PowerShell 选项卡,其中包含命令提示符和 Ubuntu 的其他窗格:
{
"command":
{
"action": "wt",
"commandline": "new-tab pwsh.exe ; split-pane -p \"Command Prompt\" -d C:\\ ; split-pane -p \"Ubuntu\" -H"
},
"keys": "ctrl+shift+o"
}
操作属性
操作存储在数组中 actions
,可以使用以下属性构造操作。
命令
这是在按下关联的键时执行的命令。
属性名称:command
必要性: 必需
接受: 字符串
操作
这会向某些命令添加其他功能。
属性名称:action
必需:可选
接受: 字符串
名称
这将设置将在命令面板中显示的名称。 如果未提供名称,终端将尝试自动生成名称。
属性名称:name
必需:可选
接受: 字符串
图标
这将设置命令面板中显示的图标。
属性名称:icon
必要性: 可选
接受:字符串形式的文件位置或表情符号
ID
这会设置此操作的 ID。 如果未提供,终端将生成此操作的 ID。 创建密钥绑定时,ID 用于引用此操作。
属性名称:id
必要性: 可选
接受: 字符串
Keybindings
可以通过使用其唯一 ID 引用操作来分配键绑定。 例如,下面是一个可能的keybindings
数组,该数组将 Alt+F4、Ctrl+Shift+1 和 Ctrl+Shift+o 分配给上面定义的操作。 可以为同一操作创建多个键绑定条目。
"keybindings": [
{ "keys": "alt+f4", "id": "User.MyCloseWindow" },
{ "keys": "ctrl+shift+1", "id": "User.MyNewTabAction" },
{ "keys": "ctrl+shift+o", "id": "User.MyCoolSetup"}
]
键绑定属性
键绑定存储在数组中 keybindings
,并使用以下属性构造。
键
这会定义用于调用命令的键组合。 一个键可以拥有任意数量的修改键。 下面列出了接受的修改键和键。
如果操作没有键,它将出现在命令面板中,但不能使用键盘调用。
属性名称:keys
必要性: 必需
接受: 字符串或 array[string]
ID
这是按下此键绑定时要调用的操作的 ID。
属性名称:id
必要性: 必需
接受: 字符串
接受的修饰符
ctrl+
、、shift+
alt+
、、win+
注意
支持使用 Windows
键作为修饰符,系统会保留大多数 Win+<key> 键绑定。 如果 OS 已保留该键绑定,终端将永远不会接收该绑定。
修改键
类型 | 键 |
---|---|
功能键和字母数字键 | f1-f24 、 a-z 、、 0-9 |
符号 | ` 、、plus 、= - 、[ 、] \ ' ; 、, 、、 . / |
箭头键 | down 、、left 、up right 、pagedown 、pageup 、pgdn 、pgup 、、 end home |
操作键 | tab 、、enter 、escape esc 、space 、backspace 、delete 、insert 、、 app menu |
数字键 | numpad_0-numpad_9 、、numpad0-numpad9 、numpad_plus numpad_add 、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
混淆。
应用程序级命令
Quit
这会关闭所有打开的终端窗口。 确认对话将显示在当前窗口中,确认要关闭所有窗口。
命令名称:quit
默认 ID:
{ "command": "quit", "id": "Terminal.Quit" }
关闭窗口
这会关闭当前窗口和其中的所有选项卡。 如果 confirmCloseAllTabs
设置为 true
,则会出现一个确认对话框,以确认你希望关闭所有选项卡。 有关此设置的详细信息,请参阅外观页。
命令名称:closeWindow
默认 ID:
{ "command": "closeWindow", "id": "Terminal.CloseWindow" }
默认绑定:
{ "keys": "alt+f4", "id": "Terminal.CloseWindow" }
查找
这将打开搜索对话框。 有关搜索的详细信息,请参阅搜索页。
命令名称:find
默认 ID:
{ "command": "find", "id": "Terminal.FindText" }
默认绑定:
{ "keys": "ctrl+shift+f", "id": "Terminal.FindText" }
查找下一个/上一个搜索匹配项
这样,你可以浏览搜索匹配项。
命令名称:findMatch
默认 ID:
{ "command": { "action": "findMatch", "direction": "next" }, "id": "Terminal.FindNextMatch" },
{ "command": { "action": "findMatch", "direction": "prev" }, "id": "Terminal.FindPrevMatch" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
direction |
必需 | "next" , "prev" |
浏览搜索结果的方向。 |
打开下拉菜单
这将打开下拉菜单。
命令名称:openNewTabDropdown
默认 ID:
{ "command": "openNewTabDropdown", "id": "Terminal.OpenNewTabDropdown" }
默认绑定:
{ "keys": "ctrl+shift+space", "id": "Terminal.OpenNewTabDropdown" }
打开设置文件
这将打开设置 UI、自定义设置文件 (settings.json
) 或默认设置文件 (defaults.json
),具体取决于 target
字段。
如果没有 target
字段,将打开自定义设置文件。
命令名称:openSettings
默认 ID:
{ "command": { "action": "openSettings", "target": "settingsUI" }, "id": "Terminal.OpenSettingsUI" },
{ "command": { "action": "openSettings", "target": "settingsFile" }, "id": "Terminal.OpenSettingsFile" },
{ "command": { "action": "openSettings", "target": "defaultsFile" }, "keys": "Terminal.OpenDefaultSettingsFile" }
默认绑定:
{ "keys": "ctrl+,", "id": "Terminal.OpenSettingsUI" },
{ "keys": "ctrl+shift+,", "id": "Terminal.OpenSettingsFile" },
{ "keys": "ctrl+alt+,", "id": "Terminal.OpenDefaultSettingsFile" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
target |
可选 | "settingsFile" 、、"defaultsFile" "settingsUI" 、、"allFiles" |
要打开的设置文件。 |
打开系统菜单
打开窗口左上角的系统菜单。
命令名称:openSystemMenu
默认 ID:
{ "command": "openSystemMenu", "id": "Terminal.OpenSystemMenu" }
默认绑定:
{ "keys": "alt+space", "id": "Terminal.OpenSystemMenu" }
切换全屏
这允许你在全屏和默认窗口大小之间切换。
命令名称:toggleFullscreen
默认 ID
{ "command": "toggleFullscreen", "id": "Terminal.ToggleFullscreen" }
默认绑定:
{ "keys": "alt+enter", "id": "Terminal.ToggleFullscreen" },
{ "keys": "f11", "id": "Terminal.ToggleFullscreen" }
切换焦点模式
这样就可以进入“焦点模式”,这会隐藏选项卡和标题栏。
命令名称:toggleFocusMode
默认 ID:
{ "command": "toggleFocusMode", "id": "Terminal.ToggleFocusMode" }
切换“始终位于顶部”模式
你可以这样切换窗口的“始终位于顶部”状态。 在“始终位于顶部”模式下时,窗口将显示在所有其他非最顶层窗口之上。
命令名称:toggleAlwaysOnTop
默认 ID:
{ "command": "toggleAlwaysOnTop", "id": "Terminal.ToggleAlwaysOnTop" }
发送输入
将任意文本输入发送到 shell。
作为示例,输入 "text\n"
将在 shell 中写入“text”,后跟一个换行符。
可能使用 ANSI 转义序列,但 \x1b
等转义代码必须编写为 \u001b
。
例如,"\u001b[A"
的行为就像按下向上键按钮之后。
命令名称:sendInput
默认绑定:
此命令当前未绑定在默认设置中。
{ "command": { "action": "sendInput", "input": "\u001b[A" } }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
input |
必须 | 字符串 | 要馈送到 shell 的文本输入。 |
选项卡管理命令
关闭选项卡
这会关闭给定索引处的选项卡。 如果未提供索引,则使用焦点选项卡的索引。
命令名称:closeTab
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
index |
可选 | 整数 | 要关闭的选项卡的位置。 |
关闭其他所有选项卡
这会关闭除索引位置处选项卡之外的所有选项卡。 如果未提供索引,则使用焦点选项卡的索引。
命令名称:closeOtherTabs
默认 ID:
{ "command": "closeOtherTabs", "id": "Terminal.CloseOtherTabs" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
index |
可选 | 整数 | 要保持打开的选项卡的位置。 |
关闭索引后的选项卡
这会关闭索引位置处选项卡之后的选项卡。 如果未提供索引,则使用焦点选项卡的索引。
命令名称:closeTabsAfter
默认 ID:
{ "command": "closeTabsAfter", "id": "Terminal.CloseTabsAfter" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
index |
可选 | 整数 | 要保持打开的最后一个选项卡的位置。 |
复制选项卡
这会创建当前选项卡的配置文件和目录的副本并打开它。 这不包括修改/添加的 ENV VARIABLES。
命令名称:duplicateTab
默认 ID:
{ "command": "duplicateTab", "id": "Terminal.DuplicateTab" }
默认绑定:
{ "keys": "ctrl+shift+d", "id": "Terminal.DuplicateTab" }
新建选项卡
这将创建一个新选项卡。如果没有任何参数,这将在新选项卡中打开默认配置文件。如果未指定索引,则将使用默认配置文件的等效设置。 如果索引未映射到配置文件,则将键直接传递给终端(如果未使用任何键来调用操作,则忽略)。
命令名称:newTab
默认 ID:
{ "command": "newTab", "id": "Terminal.OpenNewTab" },
{ "command": { "action": "newTab", "index": 0 }, "id": "Terminal.OpenNewTabProfile0" },
{ "command": { "action": "newTab", "index": 1 }, "id": "Terminal.OpenNewTabProfile1" },
{ "command": { "action": "newTab", "index": 2 }, "id": "Terminal.OpenNewTabProfile2" },
{ "command": { "action": "newTab", "index": 3 }, "id": "Terminal.OpenNewTabProfile3" },
{ "command": { "action": "newTab", "index": 4 }, "id": "Terminal.OpenNewTabProfile4" },
{ "command": { "action": "newTab", "index": 5 }, "id": "Terminal.OpenNewTabProfile5" },
{ "command": { "action": "newTab", "index": 6 }, "id": "Terminal.OpenNewTabProfile6" },
{ "command": { "action": "newTab", "index": 7 }, "id": "Terminal.OpenNewTabProfile7" },
{ "command": { "action": "newTab", "index": 8 }, "id": "Terminal.OpenNewTabProfile8" }
默认绑定:
{ "keys": "ctrl+shift+t", "id": "Terminal.OpenNewTab" },
{ "keys": "ctrl+shift+1", "id": "Terminal.OpenNewTabProfile0" },
{ "keys": "ctrl+shift+2", "id": "Terminal.OpenNewTabProfile1" },
{ "keys": "ctrl+shift+3", "id": "Terminal.OpenNewTabProfile2" },
{ "keys": "ctrl+shift+4", "id": "Terminal.OpenNewTabProfile3" },
{ "keys": "ctrl+shift+5", "id": "Terminal.OpenNewTabProfile4" },
{ "keys": "ctrl+shift+6", "id": "Terminal.OpenNewTabProfile5" },
{ "keys": "ctrl+shift+7", "id": "Terminal.OpenNewTabProfile6" },
{ "keys": "ctrl+shift+8", "id": "Terminal.OpenNewTabProfile7" },
{ "keys": "ctrl+shift+9", "id": "Terminal.OpenNewTabProfile8" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
commandline |
可选 | 字符串形式的可执行文件名 | 可执行文件在选项卡中运行。 |
startingDirectory |
可选 | 字符串形式的文件夹位置 | 将在其中打开该选项卡的目录。 |
elevate |
可选 | true 、 false 、、 null |
重写配置文件的 elevate 属性。 如果省略,此操作将按照配置文件的 elevate 设置进行。 当设置为 true 或 false 时,此操作就像配置文件(分别)设置为 "elevate": true 或 "elevate": false 一样。 |
tabTitle |
可选 | 字符串 | 新选项卡的标题。 |
index |
可选 | 整数 | 将根据其在下拉列表中的位置打开的配置文件(从 0 开始)。 |
profile |
可选 | 字符串形式的配置文件名称或 GUID | 将根据其 GUID 或名称打开的配置文件。 |
colorScheme |
可选 | 字符串形式的配色方案名称 | 要取代配置文件的设置 colorScheme 使用的方案 |
suppressApplicationTitle |
可选 | true , false |
当设置为 false 时,应用程序可以通过发送标题更改消息来更改选项卡标题。 当设置为 true 时,将禁止显示这些消息。 如果未提供,则将从配置文件的设置继承该行为。 若要输入新的选项卡标题并保留该标题,则必须将此项设置为 true。 |
打开下一个选项卡
这会打开当前选项卡右侧的选项卡。
命令名称:nextTab
默认 ID:
{ "command": "nextTab", "id": "Terminal.NextTab" }
默认绑定:
{ "keys": "ctrl+tab", "id": "Terminal.NextTab" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
tabSwitcherMode |
可选 | "mru" 、 "inOrder" 、、 "disabled" |
使用 "tabSwitcherMode" 移动到下一个表。 如果未提供任何模式,请使用全局定义的模式。 |
打开上一个选项卡
这会打开当前选项卡左侧的选项卡。
命令名称:prevTab
默认 ID:
{ "command": "prevTab", "id": "Terminal.PrevTab" }
默认绑定:
{ "keys": "ctrl+shift+tab", "id": "Terminal.PrevTab" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
tabSwitcherMode |
可选 | "mru" 、 "inOrder" 、、 "disabled" |
使用 "tabSwitcherMode" 移动到上一个表。 如果未提供任何模式,请使用全局定义的模式。 |
选项卡搜索
这将打开选项卡搜索框。
命令名称:tabSearch
默认绑定:
此命令当前未绑定在默认设置中。
{"command": "tabSearch"}
打开特定的选项卡
这会打开一个特定的选项卡,具体取决于索引。
命令名称:switchToTab
默认 ID:
{ "command": { "action": "switchToTab", "index": 0 }, "id": "Terminal.SwitchToTab0" },
{ "command": { "action": "switchToTab", "index": 1 }, "id": "Terminal.SwitchToTab1" },
{ "command": { "action": "switchToTab", "index": 2 }, "id": "Terminal.SwitchToTab2" },
{ "command": { "action": "switchToTab", "index": 3 }, "id": "Terminal.SwitchToTab3" },
{ "command": { "action": "switchToTab", "index": 4 }, "id": "Terminal.SwitchToTab4" },
{ "command": { "action": "switchToTab", "index": 5 }, "id": "Terminal.SwitchToTab5" },
{ "command": { "action": "switchToTab", "index": 6 }, "id": "Terminal.SwitchToTab6" },
{ "command": { "action": "switchToTab", "index": 7 }, "id": "Terminal.SwitchToTab7" }
默认绑定:
{ "keys": "ctrl+alt+1", "id": "Terminal.SwitchToTab0" },
{ "keys": "ctrl+alt+2", "id": "Terminal.SwitchToTab1" },
{ "keys": "ctrl+alt+3", "id": "Terminal.SwitchToTab2" },
{ "keys": "ctrl+alt+4", "id": "Terminal.SwitchToTab3" },
{ "keys": "ctrl+alt+5", "id": "Terminal.SwitchToTab4" },
{ "keys": "ctrl+alt+6", "id": "Terminal.SwitchToTab5" },
{ "keys": "ctrl+alt+7", "id": "Terminal.SwitchToTab6" },
{ "keys": "ctrl+alt+8", "id": "Terminal.SwitchToTab7" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
index |
必需 | 整数 | 将根据其在选项卡栏中的位置打开的选项卡(从 0 开始)。 |
重命名选项卡
可使用此命令将选项卡重命名为特定字符串。
命令名称:renameTab
默认绑定:
此命令当前未绑定在默认设置中。
// Rename a tab to "Foo"
{ "command": { "action": "renameTab", "title": "Foo" } }
// Reset the tab's name
{ "command": { "action": "renameTab", "title": null } }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
title |
可选 | 字符串 | 要用于此选项卡的新标题。如果省略,此命令会将选项卡标题还原为其原始值。 |
打开选项卡重命名文本框
此命令会将选项卡标题更改为一个文本字段,让你可以编辑当前选项卡的标题。清除该文本字段会将选项卡标题重置为当前 shell 实例的默认值。
命令名称:openTabRenamer
默认 ID:
{ "command": "openTabRenamer", "id": "Terminal.OpenTabRenamer" }
更改选项卡颜色
可使用此命令将选项卡的颜色更改为特定值。
命令名称:setTabColor
默认绑定:
此命令当前未绑定在默认设置中。
// Change the tab's color to a bright magenta
{ "command": { "action": "setTabColor", "color": "#ff00ff" } }
// Reset the tab's color
{ "command": { "action": "setTabColor", "color": null } }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
color |
可选 | 以十六进制格式表示的字符串:"#rgb" 或 "#rrggbb" |
要用于此选项卡的新颜色。如果省略,此命令会将选项卡颜色还原为其原始值。 |
打开选项卡颜色选取器
可使用此命令打开活动选项卡的颜色选取器。可使用颜色选取器在运行时设置选项卡的颜色。
命令名称:openTabColorPicker
默认 ID:
{ "command": "openTabColorPicker", "id": "Terminal.OpenTabColorPicker" }
移动选项卡
此命令会“向后”和“向前”移动选项卡,这相当于从左到右 UI 中的“左”和“右”。
命令名称:moveTab
默认 ID:
// Move tab backward (left in LTR)
{ "command": { "action": "moveTab", "direction": "backward" }, "id": "Terminal.MoveTabBackward" }
// Move tab forward (right in LTR)
{ "command": { "action": "moveTab", "direction": "forward" }, "id": "Terminal.MoveTabForward" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
direction |
必需 | "backward" , "forward" |
选项卡将移动的方向。 |
window |
可选 | 窗口 ID | 请参阅以下内容 |
window
是可选的,格式与 wt.exe
命令行 --window-id
参数相同。 如果将其省略,会在当前窗口中移动选项卡。 如果提供,可以是窗口的整数 ID,也可以是窗口的名称。 也接受以下保留值:
"new"
或-1
:始终在新窗口中运行此命令"last"
或0
:始终在最近使用的窗口中运行此命令
如果不存在具有给定 window
ID 的窗口,则将使用该 ID/名称创建新窗口。
广播输入
此命令将切换窗格的“广播模式”。 启用广播模式后,发送到窗格的所有输入都将发送到同一选项卡中的所有窗格。这可用于同时向多个窗格发送相同的输入。
与任何操作一样,还可以通过在命令面板中搜索“切换广播输入到所有窗格”来调用“广播模式”。
命令名称:toggleBroadcastInput
默认 ID:
{ "command": "toggleBroadcastInput", "id": "Terminal.ToggleBroadcastInput" }
打开上下文菜单
此命令将打开活动窗格的“右键单击”上下文菜单。 此菜单具有上下文相关操作,用于管理窗格、复制和粘贴等。 此操作不需要启用 experimental.rightClickContextMenu
设置。
命令名称:showContextMenu
默认 ID:
{ "command": "showContextMenu", "id": "Terminal.ShowContextMenu" }
打开“关于”对话框
此命令将打开终端的“关于”对话框。 该对话框包含有关终端的信息,其中包括版本号、许可证等。
命令名称:openAbout
默认 ID:
{ "command": "openAbout", "id": "Terminal.OpenAboutDialog" }
重要
此功能仅在 Windows 终端预览中可用。
搜索 Web
尝试打开浏览器窗口并搜索所选文本。 如果没有选择任何文本,则不会执行任何操作。 如果未提供 queryUrl
参数,则会改用 searchWebDefaultQueryUrl
设置。 如果提供了 queryUrl
参数,则字符串中的 %s
会被替换为所选文本。
命令名称:searchWeb
默认 ID:
{ "command": { "action": "searchWeb" }, "id": "Terminal.SearchWeb" },
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
queryUrl |
必须 | 字符串 | 用于搜索的 URL。 此字符串中的 %s 会被替换为所选文本。 如果省略此项,则默认为 searchWebDefaultQueryUrl 设置。 |
重要
此功能仅在 Windows 终端预览中可用。
窗口管理命令
新建窗口
这将创建一个新窗口。 如果没有任何参数,这将在新窗口中打开默认配置文件(而不考虑 windowingBehavior
的设置)。 如果未指定操作,则将使用默认配置文件的等效设置。
命令名称:newWindow
默认 ID:
{ "command": "newWindow", "id": "Terminal.OpenNewWindow" },
默认绑定:
{ "keys": "ctrl+shift+n", "id": "Terminal.OpenNewWindow" },
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
commandline |
可选 | 字符串形式的可执行文件名 | 可执行文件在选项卡中运行。 |
startingDirectory |
可选 | 字符串形式的文件夹位置 | 将在其中打开该窗口的目录。 |
tabTitle |
可选 | 字符串 | 窗口选项卡的标题。 |
index |
可选 | 整数 | 将根据其在下拉列表中的位置打开的配置文件(从 0 开始)。 |
profile |
可选 | 字符串形式的配置文件名称或 GUID | 将根据其 GUID 或名称打开的配置文件。 |
suppressApplicationTitle |
可选 | true , false |
当设置为 false 时,应用程序可以通过发送标题更改消息来更改选项卡标题。 当设置为 true 时,将禁止显示这些消息。 如果未提供,则将从配置文件设置继承该行为。 |
重命名窗口
可使用此命令将窗口重命名为特定字符串。
命令名称:renameWindow
默认绑定:
此命令当前未绑定在默认设置中。
// Rename a window to "Foo"
{ "command": { "action": "renameWindow", "name": "Foo" } }
// Reset the window's name
{ "command": { "action": "renameWindow", "name": null } }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
name |
可选 | 字符串 | 要用于此窗口的新名称。 如果省略,此命令会将窗口名称还原为其原始值。 |
打开窗口重命名对话框
此命令更改将显示一个弹出窗口,可用于编辑当前窗口的名称。 清除文本字段将重置窗口名称。
命令名称:openWindowRenamer
默认 ID:
{ "command": "openWindowRenamer", "id": "Terminal.OpenWindowRenamer" }
标识窗口
这会在焦点窗口上弹出一个覆盖层,其中将显示窗口的名称和索引。
命令名称:identifyWindow
默认 ID:
{"command": "identifyWindow", "id": "Terminal.IdentifyWindow" },
标识窗口
这会在所有窗口上弹出一个覆盖层,其中将显示每个窗口的名称和索引。
命令名称:identifyWindows
默认绑定:
此命令当前未绑定在默认设置中。
{ "command": "identifyWindows" },
窗格管理命令
拆分窗格
这会将活动窗格的大小减半,并打开另一个窗格。 如果没有任何参数,这将在新窗格中打开默认配置文件。 如果未指定操作,则将使用默认配置文件的等效设置。
命令名称:splitPane
默认 ID:
{ "command": { "action": "splitPane", "splitMode": "duplicate", "split": "auto" }, "id": "Terminal.DuplicatePaneAuto" },
{ "command": { "action": "splitPane", "split": "up" }, "id": "Terminal.SplitPaneUp" },
{ "command": { "action": "splitPane", "split": "down" }, "id": "Terminal.SplitPaneDown" },
{ "command": { "action": "splitPane", "split": "left" }, "id": "Terminal.SplitPaneLeft" },
{ "command": { "action": "splitPane", "split": "right" }, "id": "Terminal.SplitPaneRight" },
{ "command": { "action": "splitPane", "splitMode": "duplicate", "split": "down" }, "id": "Terminal.DuplicatePaneDown" },
{ "command": { "action": "splitPane", "splitMode": "duplicate", "split": "right" }, "id": "Terminal.DuplicatePaneRight" }
默认绑定:
{ "keys": "alt+shift+d", "id": "Terminal.DuplicatePaneAuto" },
{ "keys": "alt+shift+-", "id": "Terminal.DuplicatePaneDown" },
{ "keys": "alt+shift+plus", "id": "Terminal.DuplicatePaneRight" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
split |
必需 | "vertical" 、、"horizontal" "auto" 、"up" 、"right" 、、 "down" "left" |
窗格的拆分方式。 "auto" 将沿具有最大表面积的方向进行拆分。 |
commandline |
可选 | 字符串形式的可执行文件名 | 可执行文件在窗格中运行。 |
startingDirectory |
可选 | 字符串形式的文件夹位置 | 将在其中打开该窗格的目录。 |
elevate |
可选 | true 、 false 、、 null |
重写配置文件的 elevate 属性。 如果省略,此操作将按照配置文件的 elevate 设置进行。 当设置为 true 或 false 时,此操作就像配置文件(分别)设置为 "elevate": true 或 "elevate": false 一样。 |
tabTitle |
可选 | 字符串 | 聚焦于新窗格时选项卡的标题。 |
index |
可选 | 整数 | 将根据其在下拉列表中的位置打开的配置文件(从 0 开始)。 |
profile |
可选 | 字符串形式的配置文件名称或 GUID | 将根据其 GUID 或名称打开的配置文件。 |
colorScheme |
可选 | 字符串形式的配色方案名称 | 要取代配置文件的设置 colorScheme 使用的方案 |
suppressApplicationTitle |
可选 | true , false |
当设置为 false 时,应用程序可以通过发送标题更改消息来更改选项卡标题。 当设置为 true 时,将禁止显示这些消息。 如果未提供,则将从配置文件的设置继承该行为。 |
splitMode |
可选 | "duplicate" |
控制窗格拆分的方式。 仅接受 "duplicate" ,这会将焦点窗格的配置文件复制到新窗格中。 |
size |
可选 | Float | 指定新窗格的大小,作为当前窗格大小的一小部分。 1.0 将为“所有当前窗格”,并且 0.0 为“无任何父项”。 默认为 0.5 。 |
关闭窗格
这会关闭活动窗格。 如果没有拆分窗格,将关闭当前选项卡。如果只有一个选项卡处于打开状态,则将关闭该窗口。
命令名称:closePane
默认 ID:
{ "command": "closePane", "id": "Terminal.ClosePane" }
默认绑定:
{ "keys": "ctrl+shift+w", "id": "Terminal.ClosePane" }
移动窗格焦点
这会将焦点更改为其他窗格,具体取决于方向。 如果设置为 direction
,则 "previous"
会将焦点移到最近使用的窗格。
命令名称:moveFocus
默认 ID:
{ "command": { "action": "moveFocus", "direction": "down" }, "id": "Terminal.MoveFocusDown" },
{ "command": { "action": "moveFocus", "direction": "left" }, "id": "Terminal.MoveFocusLeft" },
{ "command": { "action": "moveFocus", "direction": "right" }, "id": "Terminal.MoveFocusRight" },
{ "command": { "action": "moveFocus", "direction": "up" }, "id": "Terminal.MoveFocusUp" },
{ "command": { "action": "moveFocus", "direction": "previous" }, "id": "Terminal.MoveFocusPrevious" }
默认绑定:
{ "keys": "alt+down", "id": "Terminal.MoveFocusDown" },
{ "keys": "alt+left", "id": "Terminal.MoveFocusLeft" },
{ "keys": "alt+right", "id": "Terminal.MoveFocusRight" },
{ "keys": "alt+up", "id": "Terminal.MoveFocusUp" },
{ "keys": "ctrl+alt+left", "id": "Terminal.MoveFocusPrevious" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
direction |
必需 | "left" 、、"right" 、"down" "up" 、"previous" 、"previousInOrder" 、"nextInOrder" 、"first" 、、 "parent" "child" |
焦点将移动的方向。 |
接受的 direction
值
up
、down
、left
或right
在给定方向上移动焦点。first
将焦点移动到树中的第一个叶窗格。previous
将焦点移动到当前窗格之前最近使用的窗格。nextInOrder
、previousInOrder
按创建顺序将焦点移动到下一个或上一个窗格。parent
移动焦点以选择当前窗格的父窗格。 这使用户能够一次选择多个窗格child
将焦点移动到此窗格的第一个子窗格。
“移动”窗格
将当前活动窗格移动到窗口中的其他选项卡。
命令名称:movePane
默认 ID:
{ "command": { "action": "movePane", "index": 0 }, "id": "Terminal.MovePaneToTab0" },
{ "command": { "action": "movePane", "index": 1 }, "id": "Terminal.MovePaneToTab1" },
{ "command": { "action": "movePane", "index": 2 }, "id": "Terminal.MovePaneToTab2" },
{ "command": { "action": "movePane", "index": 3 }, "id": "Terminal.MovePaneToTab3" },
{ "command": { "action": "movePane", "index": 4 }, "id": "Terminal.MovePaneToTab4" },
{ "command": { "action": "movePane", "index": 5 }, "id": "Terminal.MovePaneToTab5" },
{ "command": { "action": "movePane", "index": 6 }, "id": "Terminal.MovePaneToTab6" },
{ "command": { "action": "movePane", "index": 7 }, "id": "Terminal.MovePaneToTab7" },
{ "command": { "action": "movePane", "index": 8 }, "id": "Terminal.MovePaneToTab8" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
index |
必需 | 数字 | 要移动到的选项卡的零索引索引 |
交换窗格
交换选项卡中两个窗格的位置。此操作在 direction
参数指定的活动窗格和目标窗格上运行。
命令名称:swapPane
默认 ID:
{ "command": { "action": "swapPane", "direction": "down" }, "id": "Terminal.SwapPaneDown" },
{ "command": { "action": "swapPane", "direction": "left" }, "id": "Terminal.SwapPaneLeft" },
{ "command": { "action": "swapPane", "direction": "right" }, "id": "Terminal.SwapPaneRight" },
{ "command": { "action": "swapPane", "direction": "up" }, "id": "Terminal.SwapPaneUp" },
{ "command": { "action": "swapPane", "direction": "previous"}, "id": "Terminal.SwapPanePrevious" },
{ "command": { "action": "swapPane", "direction": "previousInOrder"}, "id": "Terminal.SwapPanePreviousInOrder" },
{ "command": { "action": "swapPane", "direction": "nextInOrder"}, "id": "Terminal.SwapPaneNextInOrder" },
{ "command": { "action": "swapPane", "direction": "first" }, "id": "Terminal.SwapPaneFirst" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
direction |
必需 | "left" 、、"right" 、"down" "up" 、"previous" 、"previousInOrder" 、"nextInOrder" 、"first" 、、 "parent" "child" |
焦点将移动的方向。 |
接受的 direction
值(这些值与 moveFocus
命令的值相同)
up
、down
、left
或right
:将活动窗格与给定方向的窗格交换。first
:将活动窗格与树中的第一个叶窗格交换。previous
:将活动窗格与当前窗格之前最近使用的窗格交换。nextInOrder
、previousInOrder
:按创建顺序将活动窗格与下一个或上一个窗格交换。parent
:不执行任何操作。child
:不执行任何操作。
缩放窗格
这会扩展焦点窗格以填充窗口的全部内容。
命令名称:togglePaneZoom
默认 ID:
{ "command": "togglePaneZoom", "id": "Terminal.TogglePaneZoom" }
调整窗格大小
这会更改活动窗格的大小。
命令名称:resizePane
默认 ID:
{ "command": { "action": "resizePane", "direction": "down" }, "id": "Terminal.ResizePaneDown" },
{ "command": { "action": "resizePane", "direction": "left" }, "id": "Terminal.ResizePaneLeft" },
{ "command": { "action": "resizePane", "direction": "right" }, "id": "Terminal.ResizePaneRight" },
{ "command": { "action": "resizePane", "direction": "up" }, "id": "Terminal.ResizePaneUp" }
默认绑定:
{ "keys": "alt+shift+down", "id": "Terminal.ResizePaneDown" },
{ "keys": "alt+shift+left", "id": "Terminal.ResizePaneLeft" },
{ "keys": "alt+shift+right", "id": "Terminal.ResizePaneRight" },
{ "keys": "alt+shift+up", "id": "Terminal.ResizePaneUp" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
direction |
必需 | "left" 、、"right" "up" 、、"down" |
调整窗格大小的方向。 |
将窗格标记为只读
可以将窗格标记为只读,这将防止输入进入文本缓冲区。 如果尝试关闭只读窗格或将文本输入到只读窗格中,终端将显示一个弹出警告。
命令名称:toggleReadOnlyMode
默认 ID:
{ "command": "toggleReadOnlyMode", "id": "Terminal.ToggleReadOnlyMode" }
可以在窗格上启用只读模式。 这与切换类似,但在再次触发时并不会切换状态。
命令名称:enableReadOnlyMode
默认 ID:
{ "command": "enableReadOnlyMode", "id": "Terminal.EnableReadOnlyMode" }
可以在窗格上禁用只读模式。 这与切换类似,但在再次触发时并不会切换状态。
命令名称:disableReadOnlyMode
默认 ID:
{ "command": "disableReadOnlyMode", "id": "Terminal.DisableReadOnlyMode" }
重启窗格
此命令将手动重启活动窗格中的 commandline
。 这对于 ssh
这样的场景特别有用,在该场景中,你可能希望在不关闭窗格的情况下重启连接。
请注意,这将终止窗格中的进程(如果当前正在运行)。
命令名称:restartConnection
默认 ID:
{ "command": "restartConnection", "id": "Terminal.RestartConnection" }
剪贴板集成命令
复制
这会将所选终端内容复制到剪贴板。 如果选择不存在,则将键同事按下直接发送到终端。
命令名称:copy
默认 ID:
{ "command": { "action": "copy", "singleLine": false }, "id": "Terminal.CopyToClipboard" }
默认绑定:
{ "keys": "ctrl+c", "id": "Terminal.CopyToClipboard" },
{ "keys": "ctrl+shift+c", "id": "Terminal.CopyToClipboard" },
{ "keys": "ctrl+insert", "id": "Terminal.CopyToClipboard" },
{ "keys": "enter", "id": "Terminal.CopyToClipboard" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
singleLine |
可选 | true , false |
为 true 时,复制的内容将复制为单一的一行。 为 false 时,则将从所选文本保留换行符。 |
copyFormatting |
可选 | true 、、false "all" 、"none" 、"html" 、"rtf" |
为 true 时,则所选文本的颜色和字体格式也将复制到剪贴板。 为 false 时,则只会将纯文本复制到剪贴板。 还可以指定要复制的格式。 当为 null 时,将继承全局 "copyFormatting" 行为。 |
粘贴
这会插入复制到剪贴板上的内容。
命令名称:paste
默认 ID:
{ "command": "paste", "id": "Terminal.PasteFromClipboard" }
默认绑定:
{ "keys": "ctrl+v", "id": "Terminal.PasteFromClipboard" },
{ "keys": "ctrl+shift+v", "id": "Terminal.PasteFromClipboard" },
{ "keys": "shift+insert", "id": "Terminal.PasteFromClipboard" }
将选定内容扩展到单词
如果存在选定内容,则会展开所选内容以完全包含部分选中的任何单词。
命令名称:expandSelectionToWord
默认 ID:
{ "command": "expandSelectionToWord", "id": "Terminal.ExpandSelectionToWord" }
全选
这会选择文本缓冲区中的所有内容。
命令名称:selectAll
默认 ID:
{ "command": "selectAll", "id": "Terminal.SelectAll" }
默认绑定:
{ "keys": "ctrl+shift+a", "id": "Terminal.SelectAll" }
标记模式
这会切换标记模式。 标记模式是一种模式,你可以使用键盘在终端中的光标位置创建选区。
命令名称:markMode
默认 ID:
{ "command": "markMode", "id": "Terminal.ToggleMarkMode" }
默认绑定:
{ "keys": "ctrl+shift+m", "id": "Terminal.ToggleMarkMode" }
切换选区标记
使用键盘修改选区时,将移动选区的一端。 你可以使用此操作切换到其他选区标记。
命令名称:switchSelectionEndpoint
默认 ID:
{ "command": "switchSelectionEndpoint", "id": "Terminal.SwitchSelectionEndpoint" },
切换块选择
使现有选区成为块选择,这意味着所选区域是一个矩形,而不会环绕到每行的开头和末尾。
命令名称:toggleBlockSelection
默认 ID:
{ "command": "toggleBlockSelection", "id": "Terminal.ToggleBlockSelection" },
回滚命令
向上滚动
这会将屏幕向上滚动由 "rowsToScroll"
定义的行数。 如果未提供 "rowsToScroll"
,它将向上滚动系统默认值定义的量,这与鼠标滚动量相同。
命令名称:scrollUp
默认 ID:
{ "command": "scrollUp", "id": "Terminal.ScrollUp" }
默认绑定:
{ "keys": "ctrl+shift+up", "id": "Terminal.ScrollUp" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
rowsToScroll |
可选 | 整数 | 要滚动的行数。 |
向下滚动
这会将屏幕向下滚动由 "rowsToScroll"
定义的行数。 如果未提供 "rowsToScroll"
,它将向下滚动系统默认值定义的量,这与鼠标滚动量相同。
命令名称:scrollDown
默认 ID:
{ "command": "scrollDown", "id": "Terminal.ScrollDown" }
默认绑定:
{ "keys": "ctrl+shift+down", "id": "Terminal.ScrollDown" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
rowsToScroll |
可选 | 整数 | 要滚动的行数。 |
向上滚动一整页
这会将屏幕向上滚动一整页(即窗口的高度)。
命令名称:scrollUpPage
默认 ID:
{ "command": "scrollUpPage", "id": "Terminal.ScrollUpPage" }
默认绑定:
{ "keys": "ctrl+shift+pgup", "id": "Terminal.ScrollUpPage" }
向下滚动一整页
这会将屏幕向下滚动一整页(即窗口的高度)。
命令名称:scrollDownPage
默认 ID:
{ "command": "scrollDownPage", "id": "Terminal.ScrollDownPage" }
默认绑定:
{ "keys": "ctrl+shift+pgdn", "id": "Terminal.ScrollDownPage" }
滚动到最早的历史记录
这会将屏幕向上滚动到输入缓冲区的顶部。
命令名称:scrollToTop
默认 ID:
{ "command": "scrollToTop", "id": "Terminal.ScrollToTop" }
默认绑定:
{ "keys": "ctrl+shift+home", "id": "Terminal.ScrollToTop" }
滚动到最新的历史记录
这会将屏幕向下滚动到输入缓冲区的顶部。
命令名称:scrollToBottom
默认 ID:
{ "command": "scrollToBottom", "id": "Terminal.ScrollToBottom" }
默认绑定:
{ "keys": "ctrl+shift+end", "id": "Terminal.ScrollToBottom" }
清除缓冲区
此操作可用于手动清除终端缓冲区。 这适用于你未处于命令行 shell 提示符中且无法轻松运行 Clear-Host
/cls
/clear
的情况。
命令名称:clearBuffer
默认 ID:
{ "command": { "action": "clearBuffer", "clear": "all" }, "id": "Terminal.ClearBuffer" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
clear |
可选 | "screen" 、 "scrollback" 、、 "all" |
要清除的屏幕部分。
|
___
视觉对象调整命令
调整字号
这会将文本大小更改为指定的磅值。
命令名称:adjustFontSize
默认 ID:
{ "command": { "action": "adjustFontSize", "delta": 1 }, "id": "Terminal.IncreaseFontSize" },
{ "command": { "action": "adjustFontSize", "delta": -1 }, "id": "Terminal.DecreaseFontSize" }
默认绑定:
{ "keys": "ctrl+plus", "id": "Terminal.IncreaseFontSize" },
{ "keys": "ctrl+minus", "id": "Terminal.DecreaseFontSize" },
{ "keys": "ctrl+numpad_plus", "id": "Terminal.IncreaseFontSize" },
{ "keys": "ctrl+numpad_minus", "id": "Terminal.DecreaseFontSize" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
delta |
必需 | 整数 | 每次命令调用的大小更改量。 |
重置字号
这会将文本大小重置为默认值。
命令名称:resetFontSize
默认 ID:
{ "command": "resetFontSize", "id": "Terminal.ResetFontSize" }
默认绑定:
{ "keys": "ctrl+0", "id": "Terminal.ResetFontSize" },
{ "keys": "ctrl+numpad_0", "id": "Terminal.ResetFontSize" }
调整不透明度
这将更改窗口的不透明度。 如果 relative
设置为 true,它将相对于当前不透明度调整不透明度。 否则,它会直接将不透明度设置为给定的 opacity
命令名称:adjustOpacity
默认绑定:
{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 0 } },
{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 25 } },
{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 50 } },
{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 75 } },
{ "command": { "action": "adjustOpacity", "relative": false, "opacity": 100 } }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
opacity |
可选 | 整数 | 终端应设置的不透明度,或者不透明度应改变的大小取决于 relative 的值 |
relative |
可选 | 布尔 | 如果为 true,则按给定 opacity 参数调整当前不透明度。 如果为 false,则完全将不透明度设置为该值。 |
切换像素着色器效果
这会切换终端中启用的任何像素着色器效果。 如果用户通过 experimental.pixelShaderPath
指定了有效着色器,此操作将打开/关闭该着色器。 这还将切换“怀旧式终端效果”,它通过配置文件设置 experimental.retroTerminalEffect
启用。
命令名称:toggleShaderEffects
默认 ID:
{ "command": "toggleShaderEffects", "id": "Terminal.ToggleShaderEffects" }
注意
版本 1.6 及更高版本中不再提供 toggleRetroEffect
操作。 建议改用 toggleShaderEffects
。
设置配色方案
更改活动配色方案。
命令名称:setColorScheme
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
colorScheme |
必须 | 字符串 | 要应用的配色方案的 name 。 |
示例声明:
{ "command": { "action": "setColorScheme", "colorScheme": "Campbell" }, "id": "User.SetSchemeToCampbell" }
添加滚动标记
向文本缓冲区添加滚动标记。 如果存在选区,则标记置于选区中,否则它将置于光标行中。
命令名称:addMark
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
color |
可选 | 以十六进制格式表示的字符串:"#rgb" 或 "#rrggbb" |
标记的颜色。 |
示例声明:
{ "command": { "action": "addMark", "color": "#ff00ff" }, "id": "User.AddMark" }
重要
此操作在 v1.21 中已稳定。 在该版本之前,它仅在 Windows 终端预览版中可用
滚动到标记
在给定方向上滚动到滚动标记。 有关详细信息,请参阅滚动标记和 Shell 集成。
命令名称:scrollToMark
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
direction |
必需 | "first" 、、"previous" "next" 、、"last" |
滚动的方向。 |
示例声明:
{ "command": { "action": "scrollToMark", "direction": "previous" }, "id": "User.ScrollToMark" }
重要
此操作在 v1.21 中已稳定。 在该版本之前,它仅在 Windows 终端预览版中可用
清除标记
清除当前位置的滚动标记,可以是在选区(如果有),也可以是在光标位置。 这是一个试验性功能,我们不保证它会持续存在。
命令名称:clearMark
示例声明:
{ "command": { "action": "clearMark" }, "id": "User.ClearMark" }
重要
此操作在 v1.21 中已稳定。 在该版本之前,它仅在 Windows 终端预览版中可用
清除所有标记
清除文本缓冲区中的所有滚动标记。 这是一个试验性功能,我们不保证它会持续存在。
命令名称:clearAllMarks
示例声明:
{ "command": { "action": "clearAllMarks" }, "id": "User.ClearAllMarks" }
重要
此操作在 v1.21 中已稳定。 在该版本之前,它仅在 Windows 终端预览版中可用
___
建议
打开建议菜单
这允许用户打开建议菜单。 建议菜单中的条目由 source
属性控制。 建议菜单的行为非常类似于命令面板。 在文本框中键入内容将筛选结果,仅显示与文本匹配的条目。 按 enter
将执行所选条目。 按 esc
将关闭菜单。
命令名称:showSuggestions
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
source |
必须 | 任意数目的 "recentCommands" 、"tasks" 或 "all" |
使用哪些建议源来填充此菜单。 请参阅下面的针对每个项的说明。 |
useCommandline |
可选 | 布尔 | 如果启用了 shell 集成且此项为 true ,建议菜单会预先填充当前命令行的内容。 默认为 true |
建议源
支持以下建议源:
"recentCommands"
:将使用最近使用的命令填充建议菜单。 它们由 shell 集成提供支持,因此仅当你将 shell 配置为支持 shell 集成时,它们才可用。 有关详细信息,请参阅 Shell 集成。"tasks"
:将使用设置中的所有sendInput
操作填充建议菜单。"all"
:使用所有建议源。
这些值可以单独用作字符串参数值,也可以组合为数组。 例如:
{ "command": { "action": "showSuggestions", "source": ["recentCommands", "tasks"] } },
{ "command": { "action": "showSuggestions", "source": "all" } },
{ "command": { "action": "showSuggestions", "source": "recentCommands" } },
在上面的示例中,前两个命令将打开包含最近使用的命令和任务的建议菜单。 第三个命令将打开仅包含最近使用的命令的建议菜单。
重要
此功能仅在 Windows 终端预览中可用。
___
缓冲区导出
导出缓冲区
这允许用户将缓冲区的文本导出到文件。 如果该文件不存在,则会创建该文件。 如果该文件已存在,则会将其内容替换为终端缓冲区文本。
命令名称:exportBuffer
默认 ID:
{ "command": { "action": "exportBuffer" }, "id": "Terminal.ExportBuffer" }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
path |
可选 | String | 如果已提供,终端会将缓冲区内容导出到给定文件。 否则,终端将打开文件选取器以选择要导出到的文件。 |
___
全局命令
全局调出
这是可在 OS 中全局运行的特殊操作,而不只是在终端窗口的上下文中。 按下时,此操作会调出终端窗口。 调出哪个窗口、在哪里调出窗口、调出窗口时它如何表现,由此操作的属性控制。
说明
在终端运行时,绑定到
globalSummon
操作的任何键在其他应用程序中都无效 - 它们将始终以终端窗口为焦点。如果对于给定
keys
已使用RegisterHotKey
API 注册其他正在运行的应用程序,终端将无法侦听这些按键。终端的提升和未提升的实例将无法同时注册相同的密钥。 这同样适用于终端的预览和稳定版本 - 始终以要启动的第一个版本为准。
仅当终端的实例已在运行时,这些按键才起作用。 若要在登录时自动启动终端,请参阅
startOnUserLogin
。
命令名称:globalSummon
默认绑定:
此命令当前未绑定在默认设置中。
{ "command": { "action": "globalSummon" } }
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
desktop |
可选 | any 、 toCurrent 、、 onCurrent |
这会控制终端应如何与虚拟桌面进行交互。
|
monitor |
可选 | any 、 toCurrent 、、 toMouse |
这会控制要由/向其中调出窗口的监视器。
|
name |
可选 | String | 省略(默认)时,请使用 monitor 和 desktop 查找相应的最近使用的窗口。 提供时,调出其名称或 ID 与给定 name 值匹配的窗口。 如果不存在这样的窗口,则创建具有该名称的新窗口。 |
dropdownDuration |
可选 | 整数 | 默认为 0 。 如果提供了正数,则使用持续 dropdownDuration 毫秒的动画,将窗口从屏幕顶部“滑入”。 200 是此设置的合理值。 |
toggleVisibility |
可选 | true , false |
默认为 true 。 如果为 true ,则当窗口当前处于前景窗口时,按下为此操作分配的键将会关闭(最小化)窗口。 如果为 false ,则按下分配的键只会使窗口进入前景。 |
当提供monitor
或name
desktop
行为name
方式如下:
desktop
"any"
:中转到已打开给定窗口的桌面。"toCurrent"
:如果该窗口位于另一个虚拟桌面上,则将其移动到当前活动桌面上。"onCurrent"
:如果该窗口位于另一个虚拟桌面上,则将其移动到当前活动桌面上。
monitor
"any"
:将该窗口保留在已打开的显示器上。"toCurrent"
:如果窗口位于另一个监视器上,则将其移动到具有当前前景窗口的监视器。"toMouse"
:如果窗口位于另一个监视器上,则将其移动到鼠标光标所在的监视器。
desktop
和 monitor
属性可以通过下列方式进行组合:
组合 | "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.
{ "command": { "action": "globalSummon" }, "id": "User.MyGlobalSummon" },
// 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.
{ "command": { "action": "globalSummon", "desktop": "any" }, "id": "User.MyGlobalSummonAnyDesktop" },
// Summon the MRU window to the current desktop, leaving the position of the window untouched.
{ "command": { "action": "globalSummon", "monitor": "any" }, "id": "User.MyGlobalSummonAnyMonitor" },
// Summon the MRU window, by going to the virtual desktop the window is
// currently on, leaving the position of the window untouched.
{ "command": { "action": "globalSummon", "desktop": "any", "monitor": "any" }, "id": "User.MyGlobalSummonAnywhere" },
// Summon the MRU window with a dropdown duration of 200ms.
{ "command": { "action": "globalSummon", "dropdownDuration": 200 }, "id": "User.MyGlobalSummonDrop" },
// Summon the MRU window. If the window is already in the foreground, do nothing.
{ "command": { "action": "globalSummon", "toggleVisibility": false }, "id": "User.MyGlobalSummonIfNotVisible" },
// Summon the window named "_quake". If no window with that name exists, then create a new window.
{ "command": { "action": "globalSummon", "name": "_quake" }, "id": "User.MyGlobalSummonQuake" }
打开 quake 模式窗口
此操作是 globalSummon
操作的一种特殊变体。 它专门调出 quake 窗口。 这是以下 globalSummon
操作的简写:
{
"id": "User.MySummonQuake",
"command": {
"action": "globalSummon",
"name": "_quake",
"dropdownDuration": 200,
"toggleVisibility": true,
"monitor": "toMouse",
"desktop": "toCurrent"
}
}
如果你想更改 quakeMode
操作的行为,建议使用你喜欢的设置在 actions
中创建新的 globalSummon
条目。
命令名称:quakeMode
默认 ID:
{ "command": "quakeMode", "id": "Terminal.QuakeMode" }
运行多个操作
此操作允许用户将多个顺序操作绑定到一个命令。 这些操作不支持 ID。
命令名称:multipleActions
参数
名称 | 必要性 | 接受 | 说明 |
---|---|---|---|
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"
]
}}
取消绑定密钥(禁用键绑定)
可以从任何命令禁用键绑定或“取消绑定”关联的键。 使用基础终端应用程序(例如 VIM)时,这可能是必需的。 未绑定的键将传递到基础终端。
命令名称:unbound
使用未绑定的示例:
例如,若要取消绑定快捷键 Alt+Shift+-" 和 Alt+Shift+=",请在 settings.json 文件的 actions
部分包含这些命令。
{
"keybindings": [
{ "id": "unbound", "keys": "alt+shift+-" },
{ "id": "unbound", "keys": "alt+shift+=" }
]
}
使用 null 的示例:
还可以通过将 "id"
设置为 null
,取消绑定默认绑定到操作的击键。 这还会允许击键与命令行应用程序设置关联,而不执行默认操作。
{
"id" : null, "keys" : ["ctrl+v"]
}
用例方案:
Windows 终端使用快捷键绑定 Ctrl+V 作为粘贴命令。 使用 WSL 命令行时,可能需要使用 Vim 这样的 Linux 应用程序来编辑文件。 但是,Vim 依赖于 Ctrl+V 键绑定来使用 blockwise 视觉模式。 此键绑定将被阻止,并且 Windows 终端粘贴命令优先,除非在 settings.json 文件中调整了 unbound
设置,使得键绑定将与 Vim 命令行应用关联,而不是与 Windows 终端绑定关联。