Windows 终端提示和技巧

首次启动时

首次安装 Windows 终端时,会看到 Windows PowerShell 提示符。 默认情况下,Windows 终端包括 Windows PowerShell、命令提示符和 Azure Cloud Shell 配置文件。

如果安装任何 适用于 Linux 的 Windows 子系统(WSL) 分发版,终端会自动为这些分发版创建配置文件。 如果在安装终端后安装其他 WSL 分发版,这些分发的配置文件将自动显示在下一个终端启动时。 这些用户配置文件使用 Linux Tux 图标作为其标识。

注释

如果需要,可以更改每个 WSL 分发的图标。 特定的分发图标不会寄送到终端内部,但你可以使用终端设置下载和分配它们。

查看默认设置

Windows 终端附带了大量默认设置,包括配色方案和键盘快捷方式(现在称为“自定义作”)。 若要查看默认设置文件,请按住 Alt 并选择下拉菜单中的“设置”按钮。

默认配置文件设置

Windows 终端使你能够将设置应用于每个配置文件,而无需复制每个配置文件条目的设置。 在 配置文件 对象内的“defaults”数组中添加设置。 详细了解 常规配置文件设置外观配置文件设置高级配置文件设置

"profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
            "fontFace": "Cascadia Code"
        },
        "list":
        []
    }

重命名选项卡

可以通过右键单击选项卡并选择“重命名选项卡”来重命名该终端会话 的选项卡。在上下文菜单中选择此选项会将选项卡标题更改为文本字段,然后可在其中编辑标题。 若要为每个终端实例设置该配置文件的选项卡标题,请参阅 Tab 标题教程

Windows 终端选项卡重命名

为选项卡着色

若要为终端会话设置选项卡颜色,请右键单击该选项卡并选择 “颜色”。...从预定义列表中选择颜色或选择 “自定义...” ,以使用颜色选取器或 RGB/HSV 或十六进制字段选取任何颜色。

Windows 终端选项卡颜色

小窍门

使用十六进制字段将选项卡设置为与背景色相同的颜色,以便无缝外观。

tabColor 设置为配置文件的一部分。 请参阅 配置文件 - 外观:选项卡颜色。 例如:

 {
            "guid": "{1234abc-abcd-1234-12ab-1234abc}",
            "name": "Windows PowerShell",
            "background": "#012456",
            "tabColor": "#012456",
        },

不能将 tabColor 设为配色方案的一部分。 此外,虽然可以使用转义序列 从命令行设置选项卡标题 ,但目前无法通过这种方式设置选项卡颜色。

鼠标交互

可以使用鼠标通过多种方式与 Windows 终端进行交互。

使用鼠标缩放

可以通过按住 Ctrl 和滚动来缩放 Windows 终端的文本窗口(使文本大小更大或更小)。 该终端会话的缩放设置会持续有效。 若要更改字号,请参阅 “配置文件 - 外观”页

使用鼠标调整背景不透明度

可以通过按住 Ctrl+Shift 和滚动来调整背景的不透明度。 该终端会话的不透明度仍然存在。 若要更改配置文件的亚克力不透明度,请参阅 “配置文件 - 外观”页面

注释

在 Windows 终端版本 1.12 中,使用鼠标滚轮更改背景不透明度时默认采用传统样式的不透明度,除非您在设置中将 useAcrylic 设置为 true。 在早期版本中,终端始终使用亚克力实现透明度。

可以使用 Ctrl + 单击鼠标从 Windows 终端内部打开超链接。

拖放文件或文件夹以打开

可以在 “新建选项卡” 按钮上拖放文件或文件夹,以使用该文件或文件夹打开默认配置文件。 默认情况下,此作将打开一个新选项卡。按住 Alt 以打开当前选项卡中的新窗格,或按住 Shift 以打开新窗口。

Windows 终端拖放

复制和粘贴

您可以通过使用剪贴板存储,右键单击鼠标在 Windows Terminal 中复制和粘贴文本。

Windows 终端还包括 copyOnSelect 设置,你可以将其设置为 true 立即将鼠标选择的任何文本复制到剪贴板。 在这种情况下,右键单击鼠标总是会粘贴内容。

虚拟终端和 WSL 鼠标支持

Windows 终端支持适用于 Linux 的 Windows 子系统(WSL)应用程序中的鼠标输入,以及使用虚拟终端(VT)输入的 Windows 应用程序。 此支持意味着诸如 tmuxMidnight Commander 等应用程序能够在您选择终端窗口中的项目时做出响应。 如果应用程序处于鼠标模式,请按住 Shift 进行选择,而不是发送 VT 输入。

使用键绑定发送输入命令

Windows 终端使你能够使用键绑定将输入发送到 shell。 在 settings.json 文件的 "actions" 数组中使用以下结构。

{ "command": {"action": "sendInput", "input": ""}, "keys": "" }

如果需要,还可以添加值 "name": ""

清除屏幕

使用键盘快捷方式将输入发送到 shell 对于经常运行的命令非常有用。 一个示例是清除屏幕:

{ "command": {"action": "sendInput", "input": "clear\r"}, "keys": "alt+k", "name": "clear terminal" }

使用键绑定导航到父目录也很有帮助。

{ "command": {"action": "sendInput", "input": "cd ..\r"}, "keys": "ctrl+up" }

可以使用此功能来运行生成或测试脚本。

焦点模式

“焦点模式”隐藏通常位于 Windows 终端顶部的标题栏和选项卡。 只能专注于终端内容。 它类似于 Visual Studio Code 中的“Zen 模式”。

若要进入焦点模式,请打开命令面板Ctrl + Shift + p,输入“焦点模式”,然后选择“切换焦点模式”。若要退出焦点模式,请重复上述步骤。

若要设置焦点模式以每次启动 Windows 终端时启动,请打开 “设置”Ctrl + ,)并选择“ 启动 ”选项卡。在 “启动模式”下,选择“ 焦点 ”(或“ 最大化焦点”,这是最大化终端窗口的焦点模式)。 退出前选择“ 保存 ”。 下次启动 Windows 终端时,它将以焦点模式打开。 若要停止 Windows 终端在焦点模式下启动,请遵循相同的步骤,但从“启动模式”选项列表中选择“默认值”。

若要添加用于进入焦点模式的快捷键(或键绑定),请打开settings.json文件(Ctrl + Shift + ,)。 在 settings.json 文件中,找到该 "actions": 节并添加以下命令:

{ "command": "toggleFocusMode", "keys": "ctrl+f12" }

将“ctrl+f12”替换为所选的快捷方式或键绑定,但不重复“作”列表中的任何现有键绑定。 还可以在 Windows 终端设置仪表板的“操作”选项卡中查看具有关联键绑定的操作列表,并在“+ 添加新绑定”。 请记得在进行任何更改后 保存 。 现在,您可以使用已创建的“操作”快捷键切换焦点模式。 (在我们的示例中, Ctrl + F12)。

若要了解有关此命令的详细信息,请参阅 toggleFocusMode

地震模式

“地震模式”是终端在命名窗口 _quake时进入的特殊模式。 当窗口处于地震模式时:

  • 终端会自动固定在监视器的上半部分。

  • 不能水平或从顶部调整窗口大小。 只能在底部调整大小。

  • 窗口自动进入焦点模式(请注意,你可以在焦点模式下有多个选项卡)。

  • 当您将windowingBehavior设置为"useExisting""useAnyExisting"时,系统将忽略_quake窗口的存在。

  • 最小化时,窗口将在任务栏和 Alt+Tab 之外隐藏。

  • 一次只能有一个窗口是地震模式窗口。

可以通过绑定quakeMode动作或手动运行指令行来创建震动模式窗口:

wt -w _quake

注释

如果不绑定 quakeMode 操作并最小化 Quake 窗口,则需要进入任务管理器来退出该终端窗口!

拆分窗格快捷方式

使用窗格可保持相关任务可见(日志、编辑器、shell),而无需切换选项卡。 可以水平或垂直拆分当前窗格,复制当前环境、移动焦点和调整窗格大小。

要添加到数组中的"actions"settings.json常用键绑定:

{ "command": { "action": "splitPane", "split": "auto" }, "keys": "alt+shift+d", "name": "Split (auto)" },
{ "command": { "action": "splitPane", "split": "vertical" }, "keys": "alt+shift+v" },
{ "command": { "action": "splitPane", "split": "horizontal" }, "keys": "alt+shift+h" },
{ "command": { "action": "duplicatePane" }, "keys": "alt+shift+u", "name": "Duplicate pane" },
{ "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": "down" }, "keys": "alt+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" },
{ "command": { "action": "resizePane", "direction": "down" }, "keys": "alt+shift+down" }

splitPane ,根据 "split": "auto" 可用空间选择布局方向。 duplicatePane 创建具有相同配置文件和工作目录的新窗格。 在 窗格中查看更多内容。

启动时启动多个窗格和选项卡

可以从单个 wt 命令打开预排列的工作区。 将命令用;分隔,并使用sp(或split-pane)来创建窗格。

wt -p "Windows PowerShell" ; sp -p "Command Prompt" ; new-tab -p "Ubuntu" ; sp -H -p "Ubuntu" ; focus-tab -t 0

提示:

  • -p 后添加 -d .(或路径)以在特定目录中启动。
  • 用于 --title 设置初始选项卡标题。
  • new-tabsplit-panefocus-tab 链接起来,让焦点正好落在你想要的位置。

在回滚缓冲区内搜索

使用内置搜索(Ctrl+Shift+F)查找整个滚动回退缓冲区中的文本,而不仅仅是可见的行。 从搜索 UI 中切换启用或禁用区分大小写和正则表达式。

增强提示:增加保留的行数,以便搜索通过调整 "historySize" 来涵盖更多历史记录(默认值通常是 9000)。 顶级设置示例:

"historySize": 20000

如果希望搜索还包括以前的会话,请考虑将输出记录到文件并使用外部搜索实用工具。 在 搜索中了解详细信息。

带有 JSON 片段的模块化设置

通过将大型配置拆分为多个文件并导入它们来保持可维护。 创建单独的文件(例如 my-actions.jsonmy-themes.json),并使用 "import"引用它们。

{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "import": ["my-actions.json", "my-themes.json"],
    "profiles": { "list": [] }
}

每个片段文件可以包含设置的子集(如 "actions""themes")。 有关详细信息,请参阅 JSON 片段扩展

管理动态配置文件

Windows 终端自动生成 PowerShell、Azure 和 WSL 等源的配置文件。 隐藏不使用的来源以简化配置文件列表。

"disabledProfileSources": ["Azure", "PowerShell"]

settings.json的顶层添加此项。 有关可用源名称,请参阅 动态配置文件

每个配置文件的环境变量

设置特定于上下文的环境变量,而不会影响整个系统。 将 "environment" 对象添加到配置文件内部。

{
    "name": "Dev PowerShell",
    "commandline": "pwsh.exe",
    "environment": {
        "NODE_ENV": "development",
        "DEBUG": "1"
    }
}

将此值与不同的 "startingDirectory" 值(例如存储库根)组合在一起,以创建专用的 shell。

复古终端效果和主题

对于怀旧外观,请启用复古风格的 CRT 着色器,结合亚克力透明度和相匹配的 tabColor

{
    "name": "Retro Prompt",
    "background": "#101010",
    "useAcrylic": true,
    "acrylicOpacity": 0.8,
    "tabColor": "#101010",
    "experimental.retroTerminalEffect": true
}

与单色配色方案或内置的“老式”方案配对,获得最佳效果。

Shell 集成和智能标签页标题

自定义 shell 提示符,以便 Windows 终端(和选项卡标题)反映当前目录、git 分支或虚拟环境。 请参阅 自定义提示设置教程

还可以通过转义序列 sendInput 绑定一个键,以手动刷新选项卡标题。 示例(PowerShell 清除命令行提示符并强制重新绘制)

{ "command": { "action": "sendInput", "input": "clear\r" }, "keys": "ctrl+alt+0", "name": "Refresh title" }

有关更复杂的进度指示器和动态字形,请参阅进度栏序列,并安装带有 Powerline 字形的字体变体(如 Cascadia Code PL)。