VS Code 终端颜色混乱

12

我正在使用默认主题,但终端的颜色难以辨认、毫无意义且不一致。我尝试切换主题,但在所有主题中都很糟糕。

这是默认主题下的样子。您能读取我的黄色输入吗?为什么不是全部都是黑色背景? Powershell terminal window

我知道有设置可以手动设置前/背景颜色。但是由于终端的行为非常混乱,我认为我的问题出在哪些地方出了故障。

例如,当我第一次启动终端时,键入一些内容,然后使用退格键删除其中一半,调整终端窗格的大小,然后再删除一些内容。请注意,某些已删除的空格为黄色,而另一些为空格,则为灰色。此外,请注意,在CWD应显示的区域全部为黑色。 Initial view

这是我的 settings.json 文件的内容:

{
    "window.zoomLevel": 0,
    "git.enableSmartCommit": true,
    "workbench.startupEditor": "newUntitledFile"
}

需要修复的是什么,以及如何修复?


编辑:

只是为了满足您的好奇心,我将此添加到我的settings.json文件中:

"workbench.colorCustomizations": {
    "terminal.foreground": "#ffffff",
    "terminal.background": "#000000"
}

没有喜悦:还是丑陋的东西


2
PowerShell使用PSReadline模块为其命令行着色,因此您可能需要进行微调;也许https://stackoverflow.com/a/51758846/45375是一个起点。 - mklement0
5个回答

9

好的,下面是您可以在终端窗口颜色方案中调整的所有可能设置列表:

(来源)
    "workbench.colorCustomizations": {
      "terminal.background":"#1D2021",
      "terminal.foreground":"#A89984",
      "terminalCursor.background":"#A89984",
      "terminalCursor.foreground":"#A89984",
      "terminal.ansiBlack":"#1D2021",
      "terminal.ansiBlue":"#0D6678",
      "terminal.ansiBrightBlack":"#665C54",
      "terminal.ansiBrightBlue":"#0D6678",
      "terminal.ansiBrightCyan":"#8BA59B",
      "terminal.ansiBrightGreen":"#95C085",
      "terminal.ansiBrightMagenta":"#8F4673",
      "terminal.ansiBrightRed":"#FB543F",
      "terminal.ansiBrightWhite":"#FDF4C1",
      "terminal.ansiBrightYellow":"#FAC03B",
      "terminal.ansiCyan":"#8BA59B",
      "terminal.ansiGreen":"#95C085",
      "terminal.ansiMagenta":"#8F4673",
      "terminal.ansiRed":"#FB543F",
      "terminal.ansiWhite":"#A89984",
      "terminal.ansiYellow":"#FAC03B"
    }

对于我来说,文件夹名称的颜色在更亮的背景色上过于鲜艳,并且我无法识别(这是因为我的VSCode主题叫做NightOwl - :P Sarah),因此我尝试(错误地)更改terminal.backgroundterminal.foreground属性,但这些属性指的是终端窗口的整个呈现。

由于这些属性实际上是以Ansi Escape Codes命名的,因此我实际上要寻找的是这些属性:terminal.ansiBlue用于文件夹名称的文本颜色,terminal.ansiGreen用于文件夹名称背景高亮颜色。

一旦我调整了这些设置,我的终端就可以正常使用了。方法是设置所有这些设置,然后开始删除或更改它们,以查看哪个设置是你喜欢的。好了,谢谢再见。

还要注意,terminal.ansiGreen被git diff用作颜色显示添加的颜色。


要更改这些设置:搜索“工作台:颜色自定义”并打开settings.json文件。我将terminal.foreground和terminal.ansiBlack更改为#8F7F6C。 - Noumenon

8
2022年3月8日,终端集成的“最小对比度”默认值从1(无影响)更新为4.5(最小影响)。根据您的颜色设置和显示内容,这可能会导致终端前景颜色不正确。
要禁用此功能,请在自己的settings.json文件中覆盖默认设置。
  "terminal.integrated.minimumContrastRatio": 1

谢谢!我一直在寻找导致某些字符呈现不同颜色的更改是什么。 - adambullmer
谢谢,我已经疯了,尝试手动设置所有ANSI颜色后,Nord看起来仍然很奇怪。 - Aelarion

8

您的控制台设置可能存在问题,您可能需要删除注册表中HKCU\Console的内容。当然,在删除之前请先保存,但不应该有任何副作用:它将仅使用默认设置重新创建。


1
不是删除所有的键,而是删除名称中带有颜色的键,例如popcolor、colortable等,这为我解决了问题。是的,我也从嵌套目录中删除了这些键。 - Sourabh

0

我是VS Code的新手(并且正在努力提高我的PowerShell技能),也遇到了同样的问题。删除与颜色相关的上述所有Reg键似乎可以解决它,但我认为根本问题在于VS Code似乎试图尊重在VS Code终端之外从shell设置的颜色方案。这真的很烦人,我不确定如何将两者分开。

在安装VS Code之前,我已经设置了蓝色背景/黄色字体方案。那是VS Code终端直接显示文本周围的相同颜色方案。


0

有两个解决方案。Xavier的解决方案有效,mklement0的评论也是正确的。

解决方案#1

按照Xavier所说的方法去做(并点赞他的回答)。

但是,如果您不想弄乱注册表设置(或者像我一样,在HKCU\Console根下嵌套了大量的注册表设置),那么...

解决方案#2

  1. 获取 Windows 10 18309(或更高版本)的构建号
    • 加入Windows Insider计划
    • 确保您所在的“环”包括新版本。对我来说,这意味着加入“快速”环
    • 无限等待更新完成安装
  2. 在您的 settings.json 中添加 "terminal.integrated.windowsEnableConpty": true
  3. 重新启动终端
  4. 点赞 mklement0的评论
  5. ...
  6. 赚钱!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接