培训
Windows 终端中的窗格
通过窗格,你可以在同一个选项卡中并行运行多个命令行应用程序。这可以最大程度地减少在选项卡之间切换的需求,以便你一次查看多个提示符。
可以在 Windows 终端中创建新的垂直或水平窗格。 垂直拆分将在焦点窗格的右侧打开一个新窗格,而水平拆分将在焦点窗格下方打开一个新窗格。 使用定向拆分 up
、right
、down
或 left
可为新窗格的去向提供更多选项。 right
和 down
等效于 vertical
和 horizontal
,而通过 up
和 left
可将新窗格放分别在焦点窗格的上方和左侧。 若要创建默认配置文件的新垂直窗格,可按 Alt+Shift++ 键组合。 若要创建默认配置文件的新水平窗格,可以使用 Alt+Shift+-。
如果要更改这些键绑定,可以使用 splitPane
操作以及 profiles.json 文件中 split
属性的 vertical
、horizontal
、up
、right
、down
、left
或 auto
值来创建新的绑定。 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
拆分模式按具有最长边缘(可用于创建窗格)的方向进行拆分。
如果要打开已在终端中打开的配置文件的新窗格,可以右键单击该选项卡,然后单击“拆分选项卡”。这将复制当前选项卡中的焦点窗格。
终端允许使用键盘在窗格之间导航。 如果按住 Alt
键,则可以使用箭头键在窗格之间移动焦点。 可以通过窗格周围的主题色边框来识别哪个窗格是焦点。 请注意,此主题色是在 Windows 颜色设置中设置的。
可以为 moveFocus
命令添加键绑定并将 direction
设置为 down
、left
、right
或 up
来自定义此项。 此外,对于最后使用的窗格,direction
可以是 previous
,对于按树顺序的导航,可以是 previousInOrder
或 nextInOrder
,或者对于第一个窗格,可以是 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
相同的导航 direction
(parent
和 child
除外)自定义 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
命令在 vertical
和 horizontal
之间切换这些窗格的拆分方向。
{ "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
命令在 vertical
和 horizontal
之间切换这些窗格的拆分方向。
{ "command": "toggleSplitOrientation" }
可以按住 Alt+Shift 并使用箭头键调整焦点窗格的大小,从而调整窗格的大小。
若要自定义此键绑定,可以使用 resizePane
操作并将 direction
设置为 down
、left
、right
或 up
来添加新的绑定。
{ "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 将关闭该选项卡。与往常一样,关闭最后一个选项卡将关闭该窗口。
可以添加使用 closePane
命令的键绑定来更改关闭窗格的键。
{ "command": "closePane", "keys": "ctrl+shift+w" }
可以缩放焦点窗格以填充窗口的全部内容。
备注
上述 gif 中的菜单是命令面板,默认情况下可使用 Ctrl+Shift+P 打开。
这可以通过使用 togglePaneZoom
命令实现。
{ "command": "togglePaneZoom" }
备注
默认情况下,togglePaneZoom
操作未绑定到任何键,但是可以通过命令面板(默认情况下绑定到 Ctrl+Shift+P)访问该操作。
可以将窗格标记为只读,这将防止输入进入文本缓冲区。 如果尝试关闭只读窗格或将文本输入到只读窗格中,终端将显示一个弹出警告。
可以使用 toggleReadOnlyMode
命令在窗格上切换只读模式。
{ "command": "toggleReadOnlyMode" }
可以在窗格上启用只读模式。 这与切换类似,但在再次触发时并不会切换状态。
命令名称:enableReadOnlyMode
默认绑定:
{ "command": "enableReadOnlyMode" }
可以在窗格上禁用只读模式。 这与切换类似,但在再次触发时并不会切换状态。
命令名称:disableReadOnlyMode
默认绑定:
{ "command": "disableReadOnlyMode" }
可以自定义在新窗格内打开的内容,具体取决于自定义键绑定。
终端允许将焦点窗格的配置文件复制到另一个窗格中。
可以通过 duplicate
将 splitMode
属性作为值添加到 splitPane
键绑定来完成此操作。
{ "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+shift+d" }
使用键绑定打开新的窗格或选项卡时,可以通过包括配置文件的名称、guid 或索引来指定要使用的配置文件。 如果未指定配置文件,则使用默认配置文件。 可以将 profile
或 index
作为参数添加到 splitPane
或 newTab
键绑定来完成此操作。 请注意,索引从 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" }
此外,你还可以替换配置文件的某些方面,例如配置文件的命令行可执行文件、起始目录或选项卡标题。 这可以通过将 commandline
、startingDirectory
和/或 tabTitle
添加到 splitPane
或 newTab
键绑定来实现。
{ "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" }