vscode 自带的几款主题都很漂亮,也支持通过用户配置修改一些常用的配色,但是如果想对很多部分的配色进行修改则没那么容易。我们可以通过基于已有主题定制自己的 vscode 主题扩展来实现该目的。

vscode 的主题、各种图标自定义以及扩展功能都可以通过插件机制实现,所以主题也是一种插件。

1 vscode 插件的目录结构

对于 vscode 主题,主要包含如下文件或目录:

package.nls.json 用于指定插件名称与描述

package.json 主题、图标、功能插件等核心的配置文件

themes 存放主题具体配置文件的目录(非必须,取决于 package.json 中的路径配置)

fileicons 存放自定义图标的目录(非必须,取决于 package.json 中的路径配置)

1.1 package.nls.json 文件

该主要包含如下字段配置:

displayName VS Code 库中使用的扩展的显示名称。

description 扩展描述,会显示在插件商店的描述部分,可以通过关键词进行检索到。

1.2 package.json 文件

package.json 文件结构及说明

{

"name": "theme-defaults",

"displayName": "%displayName%",

"description": "%description%",

"categories": [ "Themes" ],

"version": "1.0.0",

"publisher": "vscode",

"license": "MIT",

"engines": { "vscode": "*" },

"contributes": {

"themes": [

{

"id": "Default Dark+",

"label": "Dark+ (default dark)",

"uiTheme": "vs-dark",

"path": "./themes/dark_plus.json"

},

{

"id": "Default High Contrast",

"label": "High Contrast",

"uiTheme": "hc-black",

"path": "./themes/hc_black.json"

}

],

"iconThemes": [

{

"id": "vs-minimal",

"label": "Minimal (Visual Studio Code)",

"path": "./fileicons/vs_minimal-icon-theme.json"

}

]

}

}

主要字段功能或含义:

name

displayName VS Code 库中使用的扩展的显示名称。可以用占位符,引用 package.nls.json 中的字段

description 插件描述

categories 插件分类。正确的分类指定可以帮助在 vscode 插件商店中快速过滤搜索

engines 指定兼容性版本。不兼容的版本不允许安装该插件

contributes 由此包表示的 VS Code 扩展的所有贡献(所有插件功能的配置均在该字段下指定)

themes 定义主题,值为数组,可以配置多个主题

id 用户设置中使用的图标主题的 ID

label 指定主题的文案。在选择主题时显示的文本。

uiTheme 指定主题的类型。有三种可选值。vs:浅色主题;vs-dark:暗色主题;hc-black: 高对比度主题

path 指定主题配色文件的具体位置

iconThemes 自定义图标配置

id 用户设置中使用的图标主题的 ID

label UI 中显示的图标主题的标签

path 图标主题定义文件的路径

2 自定义 vscode 主题

vscode 的插件开发机制简洁清晰,特别是对于主题定制,基本是基于配置文件的,所以主题开发非常简单。

对于 vscode 主题的开发,我们可以选择官方默认主题目录与文件为基准,在此基础上进行修改定制即可。

系统自带插件的路径为:[microsoft VS Code 安装目录]\Microsoft VS Code\resources\app\extensions。

从插件商店下载的插件路径为:C:\Users\%username%\.vscode\extensions,MacOs 和 linux 上为 ~/.vscode/extensions。

我们可以选择系统自带主题 theme-defaults 作为基础开始。

主要修改配置文件中的 name、displayName、description 和 description.themes 字段内容,然后在 themes 目录中定制主题配色文件。主题配色可以综合参考官方自带主题、第三方主题或流行的开源主题,进行自定义配置。主题目录则可以放在 系统自带插件路径 下,每次重启 vscode 后该主题配置即会生效。

可以使用快捷键快速切换主题体验效果。切换选择主题快捷键为:ctrl+K ctrl+T。

3 自定义 vscode 字体

好看的主题还需要搭配好看的字体。最适合编码使用的是等宽字体。windows 系统自带的 Consolas 等宽字体本身就挺不错。另外推荐使用如下开源的等宽字体:

自定义 vscode 字体的方法为,在用户配置文件中添加如下配置(示例):

"editor.fontFamily": "'Fira Code', 'Noto Sans CJK SC Medium', Consolas, 'Courier New', monospace",

"editor.fontLigatures": true,

4 vscode 插件开发

如果你想开发一个完整的插件,打包提供给他人使用或发布到插件商店,以下信息或有一定的参考作用。

vscode 插件开发的基本步骤如下:

环境准备

开发或配置插件功能

插件打包

插件发布

4.1 环境准备

yeoman 和 generator-code 是 vscode 官方推荐的插件开发辅助工具,用于以引导方式生成一个插件的基础目录和文件。

安装:npm install -g yo generator-code

4.2 开发插件

创建插件目录及文件(可以基于已有的插件文件创建并修改)。或基于 yo 进行引导式生成,执行命令:yo code,然后按引导操作即可。

基于基础文件进行功能开发或修改,完成插件的功能后,可以将插件放到系统自带目录中,重启 vscode,如无错误,即可发现插件可以选择启用。

4.3 插件打包

可以使用 vsce 将开发好的插件打包成 .vsix 文件,提供给他人安装。

安装 vsce: npm install -g vsce

在插件目录执行打包命令: vsce package

如顺利则会生成 .vsix 文件。在插件面板选择从 VSIX 文件安装,选择该生成的文件,即可安装该插件。

4.4 插件发布

可以借助 vsce 将插件发布到 vscode 的插件商店。

首先需要拥有一个微软账户。打开该地址并登陆(没有则注册一个): https://login.live.com

创建一个令牌(Token):进入组织主页 -> 右上角Security -> New Token,注意 Scopes 选项选择 Full access

复制创建的Token,然后切换到命令行窗口,执行如下命令注册一个 publisher: vsce create-publisher < 要注册的唯一账户名>

$ vsce create-publisher lzwme

Publisher human-friendly name: (lzwme)

E-mail: xxxx@live.cn

Personal Access Token: ****************************************************

DONE Created publisher 'lzwme'.

按提示操作,如顺利则账户创建成功。

如果你以前已经创建过一个账户,则可以执行如下命令进行登录:vsce login。

在插件目录执行如下命令发布: vsce publish

主题扩展 lzwme.lzwme-eye-care 就是通过上述方法自定义的一个练手主题插件,具体的主题配色主要是参考流行开源主题聚合得到。你可以通过 vscode 的插件商店搜索 Eye Care Themes 或 lzwme 进行安装体验。

其源码仓库地址为: https://github.com/lzwme/eye-care-vscode-theme

5 相关参考或链接

vscode更换主题的插件_vscode插件开发:定制 vscode 主题插件扩展相关推荐

  1. vscode 开发vue必备插件_vsCode开发vue项目必备插件

    VSCode 开发Vue必备插件 对于很多使用vscode编写vue项目的新手同学来说,可能不知道使用什么插件,这里简单说一下我常用的几款插件. 1. vetur 实现在 vue 文件中: 语法错误检 ...

  2. vscode更换主题的插件_VScode 插件开发(三)主题

    咱们上回书说道,安装完基础环境,我们要来玩自己的主题了 1. 创建一个主题项目 $ yo code 选中 New Color Theme 接下来照图中所选,完成项目创建(简单英语不做解释) 打开项目如 ...

  3. tailwindcss 官网(六)定制:配置( `tailwind.config.js `、-p、important、核心插件、`resolveConfig`)、主题 `theme` 配置

    tailwindcss 官网(六)定制:配置( tailwind.config.js.-p.important.核心插件.resolveConfig).主题 theme 配置 文章目录 tailwin ...

  4. vscode怎么禁用插件_VSCode常用插件用户设置常见冲突解决

    VSCode简介. Visual Studio Code是一个轻量级,跨平台,功能强大的源代码编辑器,能兼容市面上所有的编程语言. 相关链接:https://code.visualstudio.com ...

  5. vscode 更换文件图标主题

    vscode提供了各类文件图标icon主题,可供用户偏好选择 --状态栏 :文件=> 首选项 => 文件图标主题(或者 点击 左下角 设置符号弹出来选项框) --或 者左下角:设置=> ...

  6. vscode代码运行时间工具_10款实用的VSCode插件提升你的编辑体验 | 第98期

    代码编辑器或者文本编辑器相信大家都不会陌生,但是,常用Windows的朋友大概都知道其自带的"文本编辑器"那是一款多么难用的软件.后来又有一系列的编辑器,比如notepad++.s ...

  7. 用VSCode打造宇宙最强Markdown编辑器【VSCode篇】vscode+MPE插件+PigGo图床+最佳实践+使用技巧

    在昨天,简单写了一下Markdown,并学习了CSDN的Markdown扩展语法,让我们离用Markdown写博客的目标更近了一步.今天开始打造Markdown编辑工具,以帮助我们更好的写博客.这篇全 ...

  8. ios设置tabbar背景颜色_WooCommerce微信小程序2.9.3版本发布 后台设置主题色 底栏装修定制...

    更新又来咯! 本次更新主要以配置小程序方面的体验优化为主 通过后台设置主题色 以往更换小程序的主题色,需要重新下载小程序,万一小程序已经改动过,下载后又要重新修改一次 本次更新后,主题色可直接在后台选 ...

  9. typescript语法高亮插件_vscode常用插件

    插件介绍 HTML Snippets > 初级H5代码片段及提示 HTML CSS Support > 初级H5代码片段及提示 Debugger for Chrome > 让 vsc ...

最新文章

  1. Go2Shell 已无法使用
  2. MyCat分布式数据库集群架构工作笔记0022---高可用_单表存储千万级_海量存储_分表扩展分片枚举
  3. 11.15PMP试题每日一题
  4. 网络管理与维护作业11
  5. 高中计算机竞赛教案,信息技术教学案例评比——选择排序的算法实现(金华第一中学)...
  6. java 32位无符号整数_Java中32位无符号数的取法
  7. 抖音矩阵系统,抖音矩阵系统源码,抖音SEO源码。
  8. 让程序像人一样的去批量下载歌曲?Python采集付费歌曲
  9. linux下的mysql调优_MySQL调优三步曲(慢查询、explain profile)
  10. CSS中absolute和relative
  11. SDUT-程序设计基础-实验1-顺序结构
  12. 数图互通高校房产管理模块,公租房管理是怎样对合同、续租,申请审核审批管理的;
  13. 个人电子邮箱格式,邮箱如何绑定微信?个人邮箱签名设置
  14. 【随机数生成算法系列】线性同余法和梅森旋转法
  15. jvm原理与性能调优
  16. 计算机上如何转换搜狗,怎样切换输入法,搜狗输入法五笔和拼音切换
  17. SpringSecurity - RememberMe
  18. 官方下载Windows10原版镜像
  19. 面经_西安葡萄城_软件开发实习生
  20. 六类、七类网线在千兆网络下的性能测试

热门文章

  1. 扫码枪回车键条码_条码扫描枪使用的回车符与制表符有什么区别呢?
  2. 基于SDL的C++黑白棋
  3. 前端Uncaught (in promise) 的解决方法及原因
  4. ue4 用fresnel节点制作简单卡通材质
  5. 一个完整的内网渗透是什么样子的
  6. java flowlayout参数_java – 调整FlowLayout面板的大小
  7. 粒子回旋加速器(Cyclotron)的原理
  8. C++使用正则表达式判断GUID格式
  9. 知乎:电脑长时间不关机会缩短寿命吗?
  10. 雄起的拼多多,焦虑了谁?