在 Visual Studio 代码中修改编辑器文本颜色?

Posted

技术标签:

【中文标题】在 Visual Studio 代码中修改编辑器文本颜色?【英文标题】:Modify editor text color in visual studio code? 【发布时间】:2019-05-13 02:25:26 【问题描述】:

也许有人可以帮我解决 Visual Studio Code 中的一个小问题,这让我抓狂... ;-/ ...

我知道如何安装和切换不同的颜色主题(如 “dark-plus”等)。 我发现了如何修改(在 settings.json 中):

editor.tokenColorCustomizations": “[暗加语法]”: "cmets": "#649664"

但是我所有的谷歌搜索都没有发现最基本的修改可以想象:我如何只更改标准编辑器字体颜色?

知道如何轻松做到这一点吗?我想将大多数深色主题的明亮字体颜色变暗一点,以减少对比度/眼睛疲劳......

我尝试修改相应的文件(例如,dark-plus-syntax-color-theme.json),但没有发现其中只有默认字体颜色。

[注意:我认为这几乎有点荒谬,我在谷歌上搜索了一个小时后发现了各种自定义方式......但不是这个最简单的调整。]

【问题讨论】:

不就是editor.foreground吗?在我的手机上,无法查看 @Mark editor.foreground 没有为我做任何改变。也就是说,我尝试了以下组合: 1.) "editor.tokenColorCustomizations": "[dark-plus-syntax]": "editor.foreground": "#FF0000" 2.) "workbench.colorCustomizations": "editor.foreground": "#FF0000" 在 settings.json 中......但我有点困惑,在哪里放置这样的行。也许我在这里遗漏了一些重要的东西。但是在 Visual Studio 代码的“帮助”页面上没有找到任何有用的信息——要么非常基本,要么只是暗示一些事情:-/ 好的,我尝试了 editor.foreground 并没有做太多大概是因为几乎所有内容都被主题语法颜色覆盖了。因此,例如,变量或函数关键字、字符串等都从主题语法规则而不是 editor.foreground 中获取颜色。所以我认为除非你找到一个实际上没有语法着色规则的主题,否则你试图做的事情是不可能的。那里一定有一些。 感谢您对此有所了解! :) 我仍然很困惑:假设一个主题覆盖了所有内容(使 editor.foreground 无用):我打开了一个文件并尝试更改相当亮的白色文本 [例如在 dar-plus 主题中]。 => 在 theme.json 文件中的某处应该有一个语法标记,它改变了这个白色文本?但情况似乎并非如此。真的很奇怪... :-| [我仍然感到惊讶,visual-studo-code 帮助页面上有这么多材料,但默认字体颜色却没有——在我看来这是最基本和最常见的调整之一?]跨度> 【参考方案1】:

以下对我有用:

    settings.json:
"workbench.colorCustomizations":  
    "editor.foreground": "#aabbcc" 

    保存settings.json

    选择不同的颜色主题。您需要做的就是打开选择器菜单并导航到不同的主题。一旦我这样做了,前台自定义就生效了。

系统信息:

OS X 10.14.4 VSCode 1.33.1

【讨论】:

你需要一个颜色选择器:google.com/search?q=color+picker+hex Lol。顺便说一句,我很欣赏这个问题的简短回答。【参考方案2】:

让我们具体一点,在使用“Dark+”主题时,尝试在 C++ 源文件中更改标识符等的“正常”文本颜色。在我的设置中,这些标识符的颜色为“#D4D4D4”(浅灰色,如 RRGGBB)。出于演示目的,我将其更改为“#080”(中绿色,为 RGB)。

首先打开一个 C++ 源文件。打开命令面板(Ctrl+Shift+P)并运行“Developer: Inspect TM Scopes”命令。

编辑 2020-08-04:从 VSCode 1.47.2(可能更早一点)开始,该命令现在称为“Developer: Inspect Editor Tokens and Scopes”。

调用该命令后,将光标移动到一个标识符上。例如:

在这种情况下,我们注意到它显示“没有主题选择器”。这意味着主题的tokenColors 属性没有设置此颜色,而是主题的普通colors 属性,特别是editor.foreground 颜色。这可以通过在settings.json 中设置workbench.colorCustomizations 来覆盖Sean's answer:

    "workbench.colorCustomizations": 
        "editor.foreground": "#080"
    ,

保存settings.json 并返回到 C++ 源文件。现在看起来像这样:

好的,这就是进步,但操作符仍然具有原始颜色。再次使用“开发者:检查编辑器令牌和范围”:

这一次,我们看到的是“无主题选择器”,而不是:

  keyword.operator  "foreground": "#d4d4d4" 

这是来自主题 tokenColors 属性的规则,我们需要在 settings.json 中使用 textMateRules 覆盖它:

    "editor.tokenColorCustomizations": 
        "textMateRules": [
            
                "scope": [
                    "keyword.operator",
                ],
                "settings": 
                    "foreground": "#080",
                ,
            ,
        ],
    ,

现在运营商也是绿色的:

根据需要重复该过程,直到覆盖所有颜色。

如果您想进行更复杂的更改(例如仅更改某些运算符颜色),我建议您阅读TextMate Scope Selectors manual。这就是“范围标签堆栈”有用的地方。但请注意,VSCode 并没有完全实现那里描述的内容(尽管它很接近),并且没有记录它所实现的内容。

settings 属性的功能没有很好的文档记录,但基本上您只能设置foreground 颜色和fontStylefontStyle 可以是bolditalicunderline 的任何空格分隔组合。很遗憾,您无法设置背景颜色。

【讨论】:

以上是关于在 Visual Studio 代码中修改编辑器文本颜色?的主要内容,如果未能解决你的问题,请参考以下文章

visual studio写完程序,编译以后,再改程序,编译器不编译改过后的程序

visual studio 和visual studio code 的区别

visual studio code 怎么用

visual studio code报错误怎么解决

visual studio 和visual studio code 的区别

visualstudiocode的viewinb找不到