Windows 终端中的窗格

通过窗格,你可以在同一个选项卡中并行运行多个命令行应用程序。这可以最大程度地减少在选项卡之间切换的需求,以便你一次查看多个提示符。

创建新窗格

使用键盘

可以在 Windows 终端中创建新的垂直或水平窗格。 垂直拆分将在焦点窗格的右侧打开一个新窗格,而水平拆分将在焦点窗格下方打开一个新窗格。 使用定向拆分 uprightdownleft 可为新窗格的去向提供更多选项。 rightdown 等效于 verticalhorizontal,而通过 upleft 可将新窗格放分别在焦点窗格的上方和左侧。 若要创建默认配置文件的新垂直窗格,可按 Alt+Shift++ 键组合。 若要创建默认配置文件的新水平窗格,可以使用 Alt+Shift+-

Windows Terminal create pane配置:Raspberry Ubuntu

如果要更改这些键绑定,可以使用 splitPane 操作以及 profiles.json 文件中 split 属性的 verticalhorizontaluprightdownleftauto 值来创建新的绑定。 auto 方法将选择为你提供最方形窗格的方向。 若要详细了解键绑定,请访问操作页

{ "command": { "action": "splitPane", "split": "vertical" }, "keys": "alt+shift+plus" },
{ "command": { "action": "splitPane", "split": "horizontal" }, "keys": "alt+shift+-" },
{ "command": { "action": "splitPane", "split": "auto" }, "keys": "alt+shift+d" },
{ "command": { "action": "splitPane", "split": "up" } },
{ "command": { "action": "splitPane", "split": "right" } },
{ "command": { "action": "splitPane", "split": "down" } },
{ "command": { "action": "splitPane", "split": "left" } },

使用新的选项卡按钮和下拉菜单

如果要打开默认配置文件的新窗格,可以按住 Alt 键并单击新选项卡按钮。 如果希望通过下拉菜单打开新窗格,可以按住 Alt 并单击所需的配置文件。 这两个选项都会 auto 将活动窗口或窗格拆分为所选配置文件的新窗格。 auto 拆分模式按具有最长边缘(可用于创建窗格)的方向进行拆分。

Windows Terminal dropdown pane

使用选项卡上下文菜单

如果要打开已在终端中打开的配置文件的新窗格,可以右键单击该选项卡,然后单击“拆分选项卡”。这将复制当前选项卡中的焦点窗格。

Windows Terminal split tab

在窗格间进行切换

终端允许使用键盘在窗格之间导航。 如果按住 lt 键,则可以使用箭头键在窗格之间移动焦点。 可以通过窗格周围的主题色边框来识别哪个窗格是焦点。 请注意,此主题色是在 Windows 颜色设置中设置的。

Windows Terminal switch panes

可以为 moveFocus 命令添加键绑定并将 direction 设置为 downleftrightup 来自定义此项。 此外,对于最后使用的窗格,direction 可以是 previous,对于按树顺序的导航,可以是 previousInOrdernextInOrder,或者对于第一个窗格,可以是 first。 最后,可以使用 parent 方向沿树向上导航以选择多个窗格,然后使用 child 选择更少的窗格并沿树向下移动。 选择多个窗格后,可以执行与聚焦单个窗格类似的操作。

{ "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" } },
{ "command": { "action": "moveFocus", "direction": "previousInOrder" } },
{ "command": { "action": "moveFocus", "direction": "nextInOrder" } },
{ "command": { "action": "moveFocus", "direction": "first" } },
{ "command": { "action": "moveFocus", "direction": "parent" } },
{ "command": { "action": "moveFocus", "direction": "child" } }

交换窗格

创建两个窗格后,可以在终端中交换它们的位置。

可以使用与 moveFocus 相同的导航 directionparentchild 除外)自定义 swapPane 命令。 这些命令将根据 direction 交换当前焦点窗格及其相邻窗格的位置。

{ "command": { "action": "swapPane", "direction": "down" } },
{ "command": { "action": "swapPane", "direction": "left" } },
{ "command": { "action": "swapPane", "direction": "right" } },
{ "command": { "action": "swapPane", "direction": "up" } },
{ "command": { "action": "swapPane", "direction": "previous" } },
{ "command": { "action": "swapPane", "direction": "previousInOrder" } },
{ "command": { "action": "swapPane", "direction": "nextInOrder" } },
{ "command": { "action": "swapPane", "direction": "first" } }

移动窗格

还可以在选项卡之间移动窗格,如果不存在具有目标索引的选项卡,则创建新选项卡。

可以自定义 movePane 命令的键绑定,以根据其顺序将窗格移动到(零索引)选项卡。

{ "command": { "action": "movePane", "index": 0 } },
{ "command": { "action": "movePane", "index": 1 } },
{ "command": { "action": "movePane", "index": 2 } },
{ "command": { "action": "movePane", "index": 3 } },
{ "command": { "action": "movePane", "index": 4 } },
{ "command": { "action": "movePane", "index": 5 } },
{ "command": { "action": "movePane", "index": 6 } },
{ "command": { "action": "movePane", "index": 7 } },
{ "command": { "action": "movePane", "index": 8 } }

更改拆分方向

在选项卡上创建两个窗格后,可以使用 toggleSplitOrientation 命令在 verticalhorizontal 之间切换这些窗格的拆分方向。

{ "command": "toggleSplitOrientation" }

交换窗格(预览

创建两个窗格后,可以在终端中交换它们的位置。

可以使用与 moveFocus 相同的导航 direction 自定义 swapPane 命令。 这些命令将根据 direction 交换当前焦点窗格及其相邻窗格的位置。

{ "command": { "action": "swapPane", "direction": "down" } },
{ "command": { "action": "swapPane", "direction": "left" } },
{ "command": { "action": "swapPane", "direction": "right" } },
{ "command": { "action": "swapPane", "direction": "up" } },
{ "command": { "action": "swapPane", "direction": "previous" } },
{ "command": { "action": "swapPane", "direction": "previousInOrder" } },
{ "command": { "action": "swapPane", "direction": "nextInOrder" } }

移动窗格(预览

还可以在选项卡之间移动窗格,如果不存在具有目标索引的选项卡,则创建新选项卡。

可以自定义 movePane 命令的键绑定,以根据其顺序将窗格移动到(零索引)选项卡。

{ "command": { "action": "movePane", "index": 0 } },
{ "command": { "action": "movePane", "index": 1 } },
{ "command": { "action": "movePane", "index": 2 } },
{ "command": { "action": "movePane", "index": 3 } },
{ "command": { "action": "movePane", "index": 4 } },
{ "command": { "action": "movePane", "index": 5 } },
{ "command": { "action": "movePane", "index": 6 } },
{ "command": { "action": "movePane", "index": 7 } },
{ "command": { "action": "movePane", "index": 8 } }

更改拆分方向(预览

在选项卡上创建两个窗格后,可以使用 toggleSplitOrientation 命令在 verticalhorizontal 之间切换这些窗格的拆分方向。

{ "command": "toggleSplitOrientation" }

调整窗格大小

可以按住 Alt+Shift 并使用箭头键调整焦点窗格的大小,从而调整窗格的大小。

Windows Terminal resize pane

若要自定义此键绑定,可以使用 resizePane 操作并将 direction 设置为 downleftrightup 来添加新的绑定。

{ "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" }

关闭窗格

可以键入 Ctrl+Shift+W 来关闭焦点窗格。 如果只有一个窗格,Ctrl+Shift+W 将关闭该选项卡。与往常一样,关闭最后一个选项卡将关闭该窗口。

Windows Terminal close panes

可以添加使用 closePane 命令的键绑定来更改关闭窗格的键。

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

缩放窗格

可以缩放焦点窗格以填充窗口的全部内容。

Windows Terminal toggle pane zoom

注意

上述 gif 中的菜单是命令面板,默认情况下可使用 Ctrl+Shift+P 打开。

这可以通过使用 togglePaneZoom 命令实现。

{ "command": "togglePaneZoom" }

注意

默认情况下,togglePaneZoom 操作未绑定到任何键,但是可以通过命令面板(默认情况下绑定到 Ctrl+Shift+P)访问该操作。

将窗格标记为只读

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

可以使用 toggleReadOnlyMode 命令在窗格上切换只读模式。

{ "command": "toggleReadOnlyMode" }

可以在窗格上启用只读模式。 这与切换类似,但在再次触发时并不会切换状态。

命令名称:enableReadOnlyMode

默认绑定:

{ "command": "enableReadOnlyMode" }

可以在窗格上禁用只读模式。 这与切换类似,但在再次触发时并不会切换状态。

命令名称:disableReadOnlyMode

默认绑定:

{ "command": "disableReadOnlyMode" }

使用键绑定自定义窗格

可以自定义在新窗格内打开的内容,具体取决于自定义键绑定。

复制窗格

终端允许将焦点窗格的配置文件复制到另一个窗格中。

Windows Terminal duplicate panes

可以通过 duplicatesplitMode 属性作为值添加到 splitPane 键绑定来完成此操作。

{ "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+shift+d" }

新终端参数

使用键绑定打开新的窗格或选项卡时,可以通过包括配置文件的名称、guid 或索引来指定要使用的配置文件。 如果未指定配置文件,则使用默认配置文件。 可以将 profileindex 作为参数添加到 splitPanenewTab 键绑定来完成此操作。 请注意,索引从 0 开始。

{ "command": { "action": "splitPane", "split": "vertical", "profile": "profile1" }, "keys": "ctrl+a" },
{ "command": { "action": "splitPane", "split": "vertical", "profile": "{00000000-0000-0000-0000-000000000000}" }, "keys": "ctrl+b" },
{ "command": { "action": "newTab", "index": 0 }, "keys": "ctrl+c" }

此外,你还可以替换配置文件的某些方面,例如配置文件的命令行可执行文件、起始目录或选项卡标题。 这可以通过将 commandlinestartingDirectory 和/或 tabTitle 添加到 splitPanenewTab 键绑定来实现。

{ "command": { "action": "splitPane", "split": "auto", "profile": "profile1", "commandline": "foo.exe" }, "keys": "ctrl+a" },
{ "command": { "action": "newTab", "profile": "{00000000-0000-0000-0000-000000000000}", "startingDirectory": "C:\\foo" }, "keys": "ctrl+b" },
{ "command": { "action": "newTab", "index": 0, "tabTitle": "bar", "startingDirectory": "C:\\foo", "commandline": "foo.exe" }, "keys": "ctrl+c" }