Neovim 主题 · 源自 vuesion/intellij-theme for IntelliJ IDEA
- 完整移植 IntelliJ IDEA vuesion 主题配色
- Treesitter 语义高亮(
@keyword、@string、@function等 80+ 组) - LSP 诊断颜色 + 语义令牌(
@lsp.type.*/@lsp.typemod.*) - 插件集成:snacks.nvim、blink.cmp、gitsigns、bufferline、which-key、noice、trouble 等
- Lualine 主题内置
- 深色背景优化
{
"hyawara/vuesion-theme.nvim",
lazy = false,
priority = 1000,
config = function()
require("vuesion-theme").setup({
-- 配置项见下方
})
vim.cmd.colorscheme("vuesion-theme")
end,
}use {
"hyawara/vuesion-theme.nvim",
config = function()
require("vuesion-theme").setup()
vim.cmd.colorscheme("vuesion-theme")
end,
}vim.cmd.colorscheme("vuesion-theme")所有配置均有默认值,按需覆盖即可:
require("vuesion-theme").setup({
-- 主题风格(当前仅支持 dark)
style = "dark",
-- 透明背景(取消 Normal 背景色)
transparent = false,
-- 是否设置终端 16 色
terminal_colors = true,
-- 各 token 类型的附加样式
styles = {
comments = { italic = true }, -- 注释斜体
keywords = { bold = true }, -- 关键字粗体
functions = {}, -- 函数样式
variables = {}, -- 变量样式
sidebars = "dark", -- 侧边栏风格:dark | transparent | normal
floats = "dark", -- 浮动窗口风格:同上
},
-- 非活跃窗口变暗
dim_inactive = false,
-- lualine 主题 section A 使用粗体
lualine_bold = false,
-- 插件集成(默认全部关闭,手动逐一开启)
plugins = {
snacks = false,
blink = false,
-- blink.cmp Kind 图标颜色:theme = 使用本主题语义色;blink = 回退到 blink/PmenuKind 默认链
blink_kind_hl = "theme",
gitsigns = false,
bufferline = false,
which_key = false,
flash = false,
mini = false,
indent_blankline = false,
noice = false,
trouble = false,
dashboard = false,
},
})require("vuesion-theme").setup({
on_colors = function(colors)
-- 修改任意颜色值
colors.keyword = "#ff0000"
colors.bg = "#1a1b2f"
-- 新增自定义颜色供高亮回调使用
colors.my_custom = "#ffcc00"
end,
})require("vuesion-theme").setup({
on_highlights = function(highlights, colors)
-- 修改单个高亮组
highlights.Normal = { fg = colors.fg, bg = colors.bg }
-- 新增高亮组
highlights.MyGroup = { fg = colors.my_custom, bold = true }
-- 链接到已有组
highlights.MyLink = { link = "Comment" }
end,
})默认情况下,本主题会让 BlinkCmpKind* 使用与代码语义一致的颜色,例如函数、类名、字段、常量分别复用主题里的 function_decl、class、function、constant。如果你更希望交给 blink.cmp 的默认高亮链(通常回退到 PmenuKind / 用户自己的 blink 配置),可这样设置:
require("vuesion-theme").setup({
plugins = {
blink_kind_hl = "blink",
},
})blink_kind_hl = "theme" 是默认值,适合追求整体主题一致;"blink" 适合已经在 blink.cmp 或其他配置里维护补全图标颜色的用户。
require("lualine").setup({
options = {
theme = "vuesion-theme", -- 自动加载内置主题
},
})| 插件 | 分组文件 | 说明 |
|---|---|---|
| snacks.nvim | snacks.lua |
Picker 界面配色 |
| blink.cmp | blink.lua |
补全菜单、文档窗口、Kind 图标 |
| gitsigns.nvim | git.lua |
Git 增删改标记 |
| bufferline.nvim | bufferline.lua |
Tab 标签栏(需 plugins.bufferline = true 开启;关闭时由 bufferline 自身派生默认颜色) |
| which-key.nvim | base.lua |
快捷键弹窗 |
| flash.nvim | base.lua |
快速跳转标签 |
| noice.nvim | base.lua |
消息 UI 美化 |
| trouble.nvim | base.lua |
诊断列表 |
| mini.nvim | base.lua |
多个 mini 模块配色 |
| indent-blankline.nvim | base.lua |
缩进参考线 |
| render-markdown.nvim | base.lua |
Markdown 渲染 |
| nvim-lint | lint.lua |
Lint 提示颜色 |
更多插件集成(telescope、neo-tree、dap 等)持续添加中。
以下是从 IntelliJ 原始主题直接移植的核心颜色对照:
| 语义 | Neovim 高亮组 | 色值 | 来源 |
|---|---|---|---|
| 背景 | Normal.bg |
#202831 |
编辑器背景 |
| 前景 | Normal.fg |
#ececee |
基础文本 |
| 关键字 | @keyword |
#ff92bb |
DEFAULT_KEYWORD |
| 字符串 | @string |
#40bf77 |
DEFAULT_STRING |
| 数字 | @number |
#f9846c |
DEFAULT_NUMBER |
| 函数声明 | @function |
#90e0a4 |
DEFAULT_FUNCTION_DECLARATION |
| 函数调用 | @function.call |
#ffffff |
DEFAULT_INSTANCE_METHOD |
| 类名 | @type / @lsp.type.class |
#f3c811 |
DEFAULT_CLASS_NAME |
| 参数 | @parameter |
#8dc3f9 |
DEFAULT_PARAMETER |
| 常量 | @constant |
#3d8beb |
DEFAULT_CONSTANT |
| 运算符 | @operator |
#40bf77 |
DEFAULT_OPERATION_SIGN |
| HTML 标签 | @tag |
#f43b6c |
DEFAULT_TAG |
| HTML 属性 | @tag.attribute |
#40bf77 |
DEFAULT_ATTRIBUTE |
| 注释 | @comment |
#6f7a86 |
DEFAULT_LINE_COMMENT |
| 标点 | @punctuation.bracket |
#ffffff |
DEFAULT_BRACES |
| 类型 | @type.builtin |
#3d8beb |
DEFAULT_PREDEFINED_SYMBOL |
| 错误 | DiagnosticError |
#e84606 |
ERRORS_ATTRIBUTES |
| 警告 | DiagnosticWarn |
#d5aa00 |
WARNING_ATTRIBUTES |
- vuesion/intellij-theme — 原始 IntelliJ IDEA 主题
- tokyonight.nvim — 架构参考与灵感来源
MIT
