终端外观
Visual Studio Code 终端的外观可以进行广泛的定制。

蓝宝石 主题,使用自定义 星舰 提示,使用字体 Hack 和 Nerd Font 符号
文本样式
终端中的文本可以通过以下设置进行自定义:
- 终端.集成.字体: 要使用的字体族,这采用CSS中fontFamily所采用的字符串格式。例如,
'Fira Code', 无衬线将配置菲拉代码作为主要字体等宽字体作为缺少字形时的备用方案。 - 终端.集成的.字体大小更改终端中文本的字体大小。
- 终端.集成.字母间距: 配置字符之间的额外水平间距(以像素为单位)。
- 终端.集成.行高: 配置字符之间的额外垂直间距,作为常规行高的乘数。例如,
1.1将增加10%的垂直空间。 - 终端.集成.字体粗细: 配置“正常”文本的字体粗细。
- 终端.集成.字体粗细加粗: 配置“粗体”文本的字体粗细。
终端.集成.字体组合.*: 配置连字.
电力线符号和Nerd字体
Powerline 字体是特殊的补丁字体,包含可以在终端中使用的附加字符。VS Code 的终端可以不需要配置字体就能渲染一些 Powerline 符号,但如果你需要更多的字符,可以使用字体家族设置来配置一个 Powerline 字体。Powerline 字体通常以“ 为电力线 ”以下设置是配置一个已打补丁的DejaVu Sans Mono的一个示例:
"editor.fontFamily": "'DejaVu Sans Mono for Powerline'"
Nerd Fonts 工作原理相同,并且通常具有" NF"后缀,以下是如何配置Hack的nerd字体变体的一个示例:
"terminal.integrated.fontFamily":"'Hack NF'"
终端光标
终端光标样式和是否闪烁可以通过以下设置自定义:
- 终端.集成.光标样式定义光标的形状,可以是块状、线状或下划线。
- 终端.集成.光标宽度: 当光标样式设置为时,光标应为多少像素宽
行输入:. - 终端.集成.光标闪烁终端聚焦时光标是否闪烁。
- 终端.集成.光标样式.不活动定义光标的形状,可以是轮廓、块、线、下划线或无。
自定义标签
终端标签默认情况下出现在终端视图的右侧,当有两个或更多终端时显示,当只有一个终端时显示在视图标题中。

能见度
默认的可见性旨在节省水平空间,但这可能不是最佳选择。标签的显示方式可以通过以下设置进行配置:
- 终端.集成.标签.隐藏条件: 隐藏右侧选项卡的时机,设置为
从不始终显示它们。 - 终端.集成.标签页.显示活动终端在终端视图标题中何时显示活动终端。
- 终端.集成.标签页.显示操作何时在视图标题中显示活动终端的操作。
- 终端.集成.标签的位置: 标签是否应该显示在终端的左侧或右侧。
- 终端.集成.标签.启用是否使用标签,禁用将显示原始下拉视图。
标签文本
每个标签上的文本由以下设置决定:
- 终端.集成.标签.标题: 标题。
- 终端.集成.标签.描述标题右侧显示的文本。
- 终端.集成.标签.分隔符: 标题和描述之间的分隔符。
默认情况下,标题显示的是 shell 检测到的进程名称。
其他终端通常显示由外壳发送的转义序列作为标题,这可以通过配置进行更改:
"终端集成标签":"${序列}"
以下是所有可用的变量:
${当前工作目录}终端的当前工作目录。${当前工作目录文件夹}终端的当前工作目录,当值与初始工作目录不同时,显示在多根工作区或单根工作区中。在Windows上,只有在启用shell集成时才会显示。${工作区文件夹}终端启动的工作区。${工作区文件夹名称}: 终端启动的工作区名称。${本地}: 表示在远程工作区中的本地终端。${处理}终端进程的名称。${进度}: 由OSC报告的进展状态9;4序列。${分隔符}: 一个条件分隔符(-),只有在被变量值或静态文本包围时才显示。${序列}: 进程提供给终端的名称。${任务}: 表示此终端与一个任务关联。${壳类型}: 检测到的壳类型。${shellCommand}: 根据 shell 集成执行的命令。这也需要对检测到的命令行有高度信心,这在某些提示框架中可能无法工作。${shellPromptInput}: 根据 shell 集成,输入 shell 的完整提示。
图标
每个终端都有一个与其 终端配置文件 相关联的图标。如果在配置文件中未定义,可以使用默认图标及其颜色进行配置,通过
状态
终端的“状态”,如果有,会在标签页右侧显示一个图标。一些状态会涉及动画。如果动画分散了注意力,可以使用以下命令禁用动画:
"terminal.integrated.tabs.enableAnimation": false
视觉铃声
当终端的铃声被触发时,会短暂显示一个黄色的铃铛图标。这可以通过设置禁用。
终端颜色
尽管终端能够显示真彩色,但程序通常使用8种ANSI颜色(黑色、红色、绿色、黄色、蓝色、品红色、青色和白色)以及每种颜色的亮变体。这些ANSI颜色由当前颜色主题决定,但也可以通过workbench.colorCustomizations设置独立于主题地进行配置。
是否使用正常ANSI颜色或亮色变体的粗体文本可以通过配置
最小对比度
终端由于一些与深色/浅色主题、ANSI颜色或运行的shells/程序的冲突,常常会有对比度问题,并且还有更多情况。
最小对比度比率功能通过增加或减少文本前景颜色的亮度,直到达到4.5:1的对比比率来解决这个问题。
这个缺点是有时彩色文本可能会失去一些饱和度。这个功能可以配置或禁用,以恢复原始颜色:
"terminal.integrated.minimumContrastRatio":1
连字符
终端连字允许将多个字符渲染为一个。您可以通过配置终端来启用连字

字体功能设置
启用连字时,还可以在格式中设置详细的字体功能设置列表字体特征设置CSS 属性。这让你可以更精细地控制字形的呈现。例如,禁用标准卡特连字和启用特定字体变体看起来有点像“calt”关闭,“ss03”有关字体支持的变体列表,请参阅字体的文档。
回退连字
当字体支持连字但 VS Code 不支持解析该字体时,您可以禁用GPU 加速或指定一组字符序列以手动连接以形成连字。
默认情况下,备用连字是一个在编码中使用的常见连字列表。通过配置来微调该列表
// 仅对 `ff`、`fi` 和 `fl` 使用连字
"terminal.integrated.fontLigatures.fallbackLigatures": [
"ff",
"fi",
"fl"
]
GPU 加速
终端具有两种不同的渲染器,每种都有不同的权衡:
- WebGL 渲染器 - 真正的 GPU 加速。
- DOM 渲染器 - 一个备用渲染器,速度较慢但兼容性很好。
在终端中,WebGL渲染器驱动的GPU加速默认是启用的。这有助于终端更快地工作并以高FPS显示,因为它显著减少了CPU渲染每一帧所花费的时间。
默认
自动尝试 WebGL 渲染器,如果失败,则会回退到 DOM 渲染器。在 Linux 虚拟机、不支持 WebGL 的浏览器或驱动程序过时的机器上,WebGL 可能无法正常工作。
自定义字形
当GPU加速启用时,自定义渲染,而不是字体,可以改善终端中某些字符的显示效果。支持以下unicode范围:
- 框图 (
输入:U+2500输入:-输入:U+257F) - 块级元素 (
输入:U+2580输入:-输入:U+259F) - 布莱叶点字图案
输入:U+2800输入:-输入:U+28FF) - 电力线符号 (
U+E0A0输入:-输入:U+E0D4, 私人使用区) - 进度指示器 (
输入:U+EE00输入:-输入:U+EE0B, 私人使用区) - Git 分支符号 (
U+F5D0输入:-输入:U+F60D, 私人使用区) - 遗留计算的符号 (
U+1FB00输入:-输入:U+1FBFF)
这也意味着配置的字体不需要包含这些字符,同时它们需要像素完美地绘制,并且在适当的情况下会拉伸到整个单元格的大小。
以下是上述范围内支持的所有~800个字符:

此功能可以通过设置禁用
假的输入:.
重新缩放模糊宽度的字形
一些unicode字符的宽度可能会有歧义,终端的后端和前端可能对此大小不一致。当GPU加速启用时发生这种情况,字形将沿水平方向重新缩放,以适应单个单元格并防止重叠。
例如,下面的图像显示了被压缩到一个单元格中的罗马数字字符:

此功能可以通过设置禁用
假的,将会导致以下重叠渲染:

定制您的提示
大多数 shell 都允许对终端提示符进行广泛的自定义。这是通过在 VS Code 之外配置你的 shell 来完成的,通常通过修改$PS1变量,设置一个$PROMPT_COMMAND或安装插件。
一些提示像 Starship 和 oh-my-posh 会显示像 git status 这样的信息,并且可以与大多数 shell 一起使用,因此它们是初学者的好选择。
常见问题
为什么我的终端显示一个彩色三角形或一个黑色矩形?
终端在某些环境中可能会出现GPU加速渲染的问题。例如,你可能会看到一个大大的多色三角形而不是文本。这通常是由于驱动程序/VM图形问题引起的,Chromium中也会发生同样的情况。通过启动解决这些问题。代码与--禁用GPU标志或通过设置
关 以避免在终端中使用画布。请参阅 GPU加速 部分了解更多信息。
为什么终端中的颜色不正确?
该最小对比度比率功能可能导致颜色无法按预期显示。可以使用以下方法禁用:
"terminal.integrated.minimumContrastRatio":1
为什么这是默认值的背景解释在vscode#146406中。