如何结合来自两个不同主题的VS Code工作台和标记颜色

时间:2019-06-19 17:46:23

标签: visual-studio-code ide themes editor customization

我最近从Sublime Text 3转到了VS Code,我想知道是否-在问这个问题时-是否有一种方法可以使用我正在使用的.tmTheme文件在Sublime Text中突出显示语法。

我知道这将涉及创建自定义主题,因为VS Code不会像Sublime和Atom那样从本质上将UI样式与语法高亮区分开来,但是VS Code至少提供了自动组合UI的任何方法(在使用.tmTheme文件中的编辑器颜色的同时,我认为在一个主题中被称为VS Code中的工作台?

在编写本文时,真的唯一的方法是使用editor.tokenColorCustomizations分别设置我的每种语法颜色吗?

1 个答案:

答案 0 :(得分:0)

将VS Code颜色主题的UI样式与现有.tmTheme文件中的语法突出显示相结合

不幸的是,截至撰写本文时,尚无简便的方法来完成此操作。在单独使用VS Code的Yeoman主题生成器工具多次失败后,我终于通过遵循the instructions here并随后进行了一些额外的手工工作使它开始工作,尽管我发现第一种方法由于某种原因很容易发生恢复原状。然后,我想出了第二种更持久的方法,到目前为止,这种方法还没有恢复。

方法1(易于还原)

打开VS Code终端( Ctrl '),然后运行以下命令来安装和运行Yeoman主题生成器工具:

npm install -g yo generator-code
cd %USERPROFILE%\Desktop
yo code 

选择New color themeStart fresh,然后按照提示输入主题名称和ID(按Enter键将说明留空)。 Yeoman然后将在桌面上为您的新主题创建一个主题文件夹。

enter image description here

假定您要用作基础UI样式的主题已作为VS Code扩展名安装,请导航至%USERPROFILE%\.vscode\extensions,单击进入基础主题的文件夹,然后找到其-color-theme.json文件(通常在themes文件夹中)。将此文件复制到新创建的主题的themes文件夹中,确保删除该文件夹中现有的-color-theme.json

打开新复制的-color-theme.json文件,然后查找以"tokenColors":开头的行。删除方括号内(包括方括号)中的所有内容:

enter image description here

...并替换为包含语法突出显示样式的.tmTheme文件的名称:

"tokenColors": "syntax-highlighting.tmTheme"

最后,将语法突出显示文件复制到themes文件夹,然后将整个主题文件夹复制到%USERPROFILE%\.vscode\extensions

重新启动VS Code,然后将活动主题( Ctrl K Ctrl T )更改为新主题主题。

方法2(永久)

打开VS Code终端( Ctrl '),然后运行以下命令来安装和运行Yeoman主题生成器工具:

npm install -g yo generator-code
cd %USERPROFILE%\Desktop
yo code 

选择New color themeImport and inline an existing theme,然后输入要使用其语法突出显示样式的.tmTheme文件的路径。请注意,这必须是不带引号的绝对路径:

enter image description here

按照提示输入主题名称和ID(按Enter键将描述留空),然后Yeoman将在桌面上为新主题创建主题文件夹。

假设您要用作基础UI样式的主题已作为VS Code扩展名安装,请导航至%USERPROFILE%\.vscode\extensions,单击进入基础主题的文件夹,然后找到其文件(通常位于themes文件夹)。

复制此文件的colors对象内部的所有样式:

enter image description here

......并将它们粘贴到Yeoman创建的主题文件夹中colors文件的-color-theme.json对象中,确保删除存在的所有对象。

最后,将整个主题文件夹复制到%USERPROFILE%\.vscode\extensions

重新启动VS Code,然后将活动主题( Ctrl K Ctrl T )更改为新主题主题。如果正确执行了此过程,则现在应该有了一个VS Code颜色主题,该主题使用所选基本主题的UI样式以及所选.tmTheme文件的语法突出显示样式,并且不会在没有警告的情况下返回。

enter image description here