Build colour-scheme for Neovim

2022.10.02

发现很多时候该高亮的地方没有高亮起来,于是准备重新配置下,但是之前自己对于颜色的调试十分的麻烦(不是很了解 neovim 插件的开发流程),不是所见即所得的那种,你需要关掉 neovim 的实例然后重新开起来,后面学习了 lua 之后,发现只需要将 package.loaded.yourmodule 设置为 nil 然后重新 require(yourmodule) 即可,这些都是看了 nord.nvim 这个仓库发现的,想着别人是怎么做的学习下。

首先克隆 git@github.com:CaryWill/jellybeans.nvim.git 这个是我 fork nord.nvim 的仓库,你们可以下载下来,然后使用 colorscheme jellybeans 即可使用。

你安装的插件会安装在 /Users/cary/.local/share/nvim/plugged/jellybeans.nvim 这个目录下面,其实你执行 :PlugInstall 的时候就是将我们的 git 仓库克隆到了这个目录下, 来看下目录结构,

.
├── LICENSE
├── README.md
├── colors
│   └── jellybeans.vim
└── lua
    ├── jellybeans
    │   ├── init.lua
    │   ├── theme.lua
    │   └── util.lua
    └── lualine
        └── themes
            └── jellybeans.lua

我们 lua 目录下有一个 jellybeans 目录,这样我们就定义了一个 jellybeans 的模块,我们在 colors 的目录下创建了一个 jellybeans.vim 文件,当我们执行 :colorscheme jellybeans 的时候,这个文件会被执行,里面会加载我们定义的这些语法高亮。

还遇到个问题,就是高亮里面定义的 italic 不生效了,变得很奇怪,结果发现自己的 tmux 配置有问题,添加下面的到你的 tmux 配置即可,

set -g default-terminal "tmux-256color"
set -as terminal-overrides ',xterm*:sitm=\E[3m'

后面调试起来就很方便了,每次修改完只需要按 <leader>r 快捷键即可刷新 init.vim 同时会重新加载我们的 runtime ./colors.vim 也就是执行了 colorscheme jellybeans 也就是 null 掉我们定义的 jellybeans 模块,然后重新加载,修改的样式也就会立即生效了。

参考

  1. How to force reload all required scripts in lua config? : neovim
  2. shaunsingh/nord.nvim
  3. What does colorscheme command do in vim?
  4. jellybeans-nvim
  5. Tmux 2.6 italic not working...