如何覆盖 neovim lua 配置文件中的配色方案?

mon*_*zim 14 lua vim-plugin lua-table neovim

如何覆盖 neovim lua 配置文件中的某些配色方案值?我正在尝试使用 .lua 而不是 .vim。以前在我的 init.vim 文件中,我用它来覆盖一些设置,我也想为 init.lua 文件启用这些设置。我怎样才能做到这一点?

highlight ColorColumn ctermbg=0 guibg=lightgrey
highlight Normal ctermfg=white ctermbg=black
autocmd ColorScheme * highlight CursorLineNr cterm=bold term=bold gui=bold
Run Code Online (Sandbox Code Playgroud)

配置文件

lch*_*lus 12

对于 Neovim

在你的Lua配置中init.lua,你可以使用vim.cmd函数来添加突出显示并创建自动命令:

vim.cmd([[highlight ColorColumn ctermbg=0 guibg=lightgrey]])
vim.cmd([[highlight Normal ctermfg=white ctermbg=black]])
vim.cmd([[autocmd ColorScheme * highlight CursorLineNr cterm=bold term=bold gui=bold]])
Run Code Online (Sandbox Code Playgroud)

对于 Neovim >= 0.7

在这个 Neovim 版本中,API 中有一个新的功能来设置突出显示:nvim_set_hl

你可以在 Lua 中用它来定义你的亮点:

vim.api.nvim_set_hl(0, "ColorColumn", { ctermbg=0, bg=LightGrey })
vim.api.nvim_set_hl(0, "Normal", { ctermfg=White,  ctermbg=Black })
Run Code Online (Sandbox Code Playgroud)

API 中也有nvim_create_autocmd在 Lua 中创建自动命令的函数:

vim.api.nvim_create_autocmd("ColorScheme", 
  pattern="*",
  callback = function()
    vim.api.nvim_set_hl(0, "CursorLineNr", { cterm=bold, bold=true })   
  end,
)
Run Code Online (Sandbox Code Playgroud)