终端外观
Visual Studio Code 终端的外观可以被广泛自定义。

蓝宝石主题搭配自定义星舰提示,使用字体 Hack with Nerd Font 符号
文本风格
终端中的文本可以通过以下设置进行自定义:
- terminal.integrated.fontFamily: 字体族,采用 CSS 中 fontFamily 格式的字符串。例如,
“'Fira代码',单宽”将配置Fira 代码作为主字体,单空间当它没有符文时,作为备选。 - terminal.integrated.fontSize: 改变终端文本的字体大小。
- terminal.integrated.letterSpacing: 配置字符间的额外水平间距(像素单位)。
- terminal.integrated.lineHeight: 配置字符间额外的垂直间距,作为常规行高的乘数。例如,
1.1会增加10%的垂直空间。 - terminal.integrated.fontWeight(终端.integrated.fontWeight): 配置“正常”文本的字体粗细。
- terminal.integrated.fontWeightBold(码数加粗): 配置“加粗”文本的字体权重。
terminal.integrated.fontLigatures.*:配置连字。
电力线符号与 Nerd 字体
电力线字体是一种特殊的补丁字体,包含可在终端中使用的额外字符。VS Code 的终端无需配置字体即可渲染部分电力线符号,但如果需要更多字形,可以用字体家族设置配置电力线字体。电力线字体通常以“用于电力线”以下设置示例展示了如何配置已修补的DejaVu Sans Mono:
"editor.fontFamily": "'DejaVu Sans Mono for Powerline'"
Nerd字体的工作原理相同,通常有“NF”后缀,以下是配置 Hack nerd 字体变体的一个示例:
"terminal.integrated.fontFamily": "'Hack NF'"
终端光标
终端光标样式及是否闪烁可以通过以下设置进行自定义:
- terminal.integrated.cursorStyle定义光标的形状,可以是方块、线条或下划线。
- terminal.integrated.cursorWidth:当光标样式设置为 时,光标的像素宽度应该是多少
线路. - terminal.integrated.cursorBlinking(闪烁):当终端聚焦时,光标是否应该闪烁。
- terminal.integrated.cursorStyleInactive定义光标的形状,可以是轮廓、块、线、下划线或无光标。
自定义标签页
当默认有两个或多个终端时,终端标签页会出现在终端视图右侧;当只有一个终端时,视图头部显示活跃终端。

能见度
默认可见性设计是为了节省水平空间,但可能并不理想。标签页的呈现方式可以通过以下设置进行配置:
- terminal.integrated.tabs.hideCondition:何时隐藏右侧的标签页,设置为
绝不总是向他们展示。 - terminal.integrated.tabs.showActiveTerminal: 何时在终端视图头部显示活跃终端。
- terminal.integrated.tabs.showActions: 何时在视图头部显示活跃终端的作。
- terminal.integrated.tabs.location:标签页应显示在终端的左侧还是右侧。
- terminal.integrated.tabs.enabled: 是否使用标签页,禁用后会显示原始下拉视图。
制表符文本
每个标签页上的文本由以下设置决定:
- terminal.integrated.tabs.title:标签标题。
- 终端.集成.标签。描述: 标题右侧的文本。
- terminal.integrated.tabs.separator标题和描述之间的分隔符。
默认情况下,标题显示的是 shell 检测到的进程名称。
其他终端通常会将壳体发送的转义序列作为标题显示,标题可配置为:
"terminal.integrated.tabs.title": "${sequence}"
以下是所有可用的变量:
${cwd}:终端当前工作目录。${cwdFolder}:终端当前工作目录,若多根工作区或单个根工作区中值与初始工作目录不同时显示。在Windows上,只有启用shell集成时才会显示这个功能。${workspaceFolder}:终端启动的工作空间。${workspaceFolderName}:终端启动工作区的名称。${local}: 表示远程工作空间中的本地终端。${process}:终端进程的名称。${progress}:OSC报告的进度状态9;4顺序。${分隔器}: 一个条件分隔符(-),只有在被变量包围时才显示。${序列}:该进程赋予终端的名称。${task}表示该终端与任务关联。${shellType}:检测到的壳型。${shellCommand}:根据壳体集成执行的命令。这也需要对检测到的命令行高度信心,而在某些提示框架中可能无法实现。${shellPromptInput}:根据Shell集成,Shell的完整提示输入。
图标
每个终端都有一个由其终端配置文件决定的图标。默认图标及其颜色(如果配置文件中未定义)可配置为
现状
终端的“状态”(如果有的话)通过标签右侧的图标表示。有些状态涉及动画。如果这让你分心,可以用以下方式禁用动画:
"terminal.integrated.tabs.enableAnimation": false
视觉钟
当终端铃声被触发时,会短暂显示黄色铃铛图标。可以禁用
终端颜色
虽然终端能够显示真实颜色,但程序通常使用8种ANSI颜色(黑色、红色、绿色、黄色、蓝色、品红色、青色和白色)以及每种颜色的亮色变体。这些ANSI颜色由活动色彩主题决定,但也可以通过workbench.colorCustomizations设置独立于主题进行配置。
无论加粗文字使用普通ANSI颜色还是明亮变体,都可以配置为
最小对比度
终端常因与暗/浅主题、ANSI颜色或运行的shell/程序冲突而存在对比度问题。
最小对比度功能通过增加或降低文本前景色的亮度,直到达到4.5:1的对比度,从而解决了这个问题。
其中一个缺点是彩色文字有时可能会失去部分饱和度。该功能可配置或禁用,以获得原始颜色,以下方式:
"terminal.integrated.minimumContrastRatio": 1
连字
终端连字允许将多个字符合成为一个。你可以通过配置

字体功能设置
启用连字时,还可以设置详细的字体功能设置列表,格式如下:font-feature-settingsCSS 属性。这让你对连字的渲染方式有更细致的控制。例如,禁用标准卡尔特连字和启用特定字体变体大致如下“calt”关闭,“ss03”.有关该字体支持的变体列表,请参阅字体文档。
备用连字
当字体支持连字但 VS Code 不支持解析该字体时,你可以禁用 GPU 加速,或者指定字符串列表手动加入以制作连字。
默认情况下,备用连字是编码中常用的连字列表。通过配置
// Only use ligatures for `ff`, `fi` and `fl`
"terminal.integrated.fontLigatures.fallbackLigatures": [
"ff",
"fi",
"fl"
]
GPU 加速
该终端配备了两种不同的渲染器,每种渲染器都有不同的权衡:
- WebGL 渲染器——真正的 GPU 加速。
- DOM渲染器——一种备份渲染器,速度较慢但兼容性很好。
终端默认启用了由WebGL渲染器驱动的GPU加速。这帮助终端更快运行并以高帧率显示,显著减少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来完成,通常通过修改$PS 1变量,设置a$PROMPT_COMMAND(指挥)或者安装插件。
有些提示,比如Starship和oh-my-pash,会显示git状态,并且适用于大多数shell,所以刚开始时是个不错的选择。
常见问题
为什么我的终端显示的是多色三角形或黑色矩形?
终端在某些环境中可能会遇到GPU加速渲染的问题。例如,你可能会看到一个大多色三角形而不是文字。这通常是由驱动/虚拟机显卡问题引起的,Chromium中也会出现同样的情况。通过发布来绕过这些问题代码其中--禁用-GPU旗帜或设置
不对劲以避免在终端中使用画布。更多信息请参见GPU加速部分。
为什么终端里的颜色不正确?
最小对比度功能可能导致颜色显示不正常。它可以通过以下方式禁用:
"terminal.integrated.minimumContrastRatio": 1
为什么这是默认的背景可以在 vscode#146406 中解释。