Gruvbox9
- vim 有许多出色的主题例如
gruvbox,solarized,hybrid等等。都是经常换来换去的使用,用多了都会有审美疲劳。换来换去最后还是日常换到了 gruvbox,也算是我准备常用的一个主题了。 gruvbox好像也有一些日子没更新了存在一些问题。我换到了gruvbox8,最近在写React的时候发现对 jsx 和 js 的一些颜色支持的并不是很好。js 插件我使用neoclide/vim-jsx-improve,是赵启明大佬制作的插件支持 js 和 jsx,于是我就准备 hack 下这个主题添加 jsx 的支持。- vim-jsx-improve 的 js 和 jsx 的 syntax group 来自 pangloss/vim-Javascript 和 MaxMEllon/vim-jsx-pretty,所以参照这个 2 插件的 syntax group 调整颜色,在原有的基础上又添加了许多 syntax group 的颜色,整个颜色的设置参考了 vscode gruvbox 主题。
- 参考过程中,我发现 vscode 中,jsx 的 Component 组件高亮是不同于 html 标签的。查看 vim-jsx-improve 并没有添加有关的高亮组,查看 vim-jsx-pretty 插件只有这个
jsxComponentName提供组件名称的语法高亮,但是没有组件闭合标签的语法高亮,所以我添加了jsxComponentName和jsxEndCompoentName到 vim-jsx-improve 中,参见这个pr,jsxEndCompoentName应该是其他 vim 的 jsx 插件不具备的一个高亮组。 - 调整完提了 pr 给 gruvbox8,但是基于个人审美又调整了一些颜色。制作了 lightline 的 gruvbox 主题,于是有了gruvbox9,征求了 gruvbox8 作者的同意。
- 可能会有些花哨对于某些人而言,因为基本上是基于我个人的审美来修改的。如果你也喜欢这个颜色的话可以试用。
- 传送门
效果

