在 Windows 终端中选择文本

在 Windows 终端中选择文本很简单,但该空间中有许多其他功能,可使此操作更加完美。

鼠标支持

左键单击并拖动鼠标以创建选区。 双击按单词扩展选区,三次单击按线条扩展选区。

如果按住 Alt 键,将创建块选择(而不是行选择)。 块状选择创建一个矩形区域,该区域不会环绕到行尾。

如果按住 Shift 键,则可以将选区显式扩展到终端上的特定点,而无需单击和拖动。

选择完成后,有几个可用选项。 单击左键将清除选区。 如果确实想使用该内容,可以右键单击,将所选文本复制到剪贴板并清除选区。 如果再次右键单击,可将剪贴板的内容粘贴到终端中。

备注

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

键盘支持

可以使用 selectAllmarkMode 操作创建选区。 selectAll 操作选择缓冲区中的所有文本。 markMode 操作切换一种特殊模式,可在终端中的光标位置创建选区。 在标记模式下,可以使用以下不可配置的键绑定来移动光标:

键绑定 结果
箭头键 在指定方向上按字符移动
Ctrl + 向左键 移动到上一个或现有单词的开头
Ctrl + 向右键 移动到下一个或现有单词的末尾
主页 移动到行首
End 移动到行尾
Pgup 上移一页(视区)
Pgdn 下移一页(视区)
Ctrl+Home 移动到缓冲区的开头
Ctrl+End 移动到缓冲区的末尾
Enter 复制活动选定内容

处于标记模式时,可使用 TabShift + Tab 导航到缓冲区中的下一个或上一个超链接。 如果已启用 experimental.detectUrls,Windows 终端可自动检测超链接。

无论是否处于标记模式,都可以使用以下不可配置的键绑定扩展现有选区:

键绑定 结果
Shift + 箭头键 在指定方向上按字符扩展
Ctrl + Shift + 向左键 扩展到上一个或现有单词的开头
Ctrl + Shift + 向右键 扩展到下一个或现有单词的末尾
Shift+Home 扩展到行首
Shift+End 扩展到行尾
Shift + Pgup 向上扩展一页(视区)
Shift + Pgdn 向下扩展一页(视区)
Ctrl+Shift+Home 扩展到缓冲区的开头
Ctrl+Shift+End 扩展到缓冲区的末尾

使用 toggleBlockSelection 操作将现有选区转换为块选择。

键盘创建或修改的任何选区也会显示选择标记,以指示当前正在移动选区的哪一端。 可以使用 switchSelectionEndpoint 操作开始移动选区的另一端。

选择完成后,有几个可用选项。 可以使用 ESC 键清除选区。 或者,大多数键输入也会清除选区,并将键事件直接传递给基础 shell。 如果确实想使用所选文本,可以使用 copy 操作将其复制到剪贴板。

复制所选文本

如上所述,可以通过右键单击或 copy 操作复制所选文本。 但是,可以自定义许多有关复制文本的设置:

  • 复制格式化文本
    • 你还可以使用 copyFormatting 全局设置将所选文本本身的格式复制到剪贴板。 这样,就可以复制终端的字体信息,例如前景色、背景色和字体。
    • 如果想将格式复制限制为某些键绑定(或命令),可以修改 copy 操作的 copyFormatting 参数。
  • 在不取消文本选择的情况下复制
    • 通过将 copy 操作中的 dismissSelection 参数设置为 false,可以复制文本而不取消文本选择。
  • 复制为单行
    • 可以使用 copy 操作中的 singleLine 参数将文本复制为单行。
  • 从块选择中删除尾随空格
    • 可以使用 trimBlockSelection 全局设置从块选择中删除尾随空格。

还可以使用 copyOnSelect 全局设置将新选择的文本自动复制到剪贴板。 启用此设置后,如果存在选区,则右键单击终端会将所选文本复制并粘贴到终端。

备注

如果启用 copyOnSelect,则使用键盘修改选区不会自动复制新选择的文本。 需要使用 copy 操作或右键单击终端手动复制文本。

自定义选区外观

可以使用配色方案中的 selectionBackground 属性自定义选区颜色。 或者,可以使用 selectionBackground 配置文件设置覆盖特定配置文件的选区颜色。

自定义单词分隔符

如上所述,双击并使用 Ctrl + Shift + 箭头键(或在标记模式下使用 Ctrl + 箭头键)可按单词导航。 但是,单词不仅可以用空格分隔。 你可以使用 wordDelimiters 全局设置自定义单词边界。