一个基于 lazy.nvim 的现代化 Neovim 配置。
tokyonight主题treesitter高亮与缩进snacks.nvimdashboard / lazygit / notifier / zen / scratch / statuscolumnfzf-lua高性能文件、全文、buffer、符号、诊断、键位搜索nvim-tree.lua文件树toggleterm.nvim浮动终端;内置右侧 / 底部项目根终端与右侧 agent 终端面板mason+lspconfig语言服务器管理- 每个 LSP server 独立从 buffer 路径往上查找 root marker,自动适配 monorepo / 全栈项目的子目录
- 终端、lazygit、agent 启动时自动使用当前 buffer 的项目根作为 cwd,Neovim 自身的工作目录不变
conform.nvim自动格式化nvim-lint代码检查nvim-cmp+LuaSnip补全,Copilot ghost text 内联建议cmp-cmdline/cmp-dictionary/lspkind-nvim命令行补全、字典补全与补全图标- Codex / Claude / Gemini / OpenCode 终端 agent 快捷入口
bufferline.nvim顶部标签栏- 文件树 / DBUI / Diffview 文件栏走左侧固定区,agent / 右侧终端 / API 结果 / outline / debug 走右侧固定区,quickfix / diagnostics / task / 底部终端走底部固定区,查找 picker 走主编辑区底部浮窗
- buffer 标签栏避开文件树、数据库、Git 文件栏、右侧 agent / terminal / outline / debug 侧栏
diffview.nvimGit diff / file history / merge 视图flash.nvim快速跳转lspsaga.nvimhover / code action / rename / 定义预览 / 引用与实现查找tiny-inline-diagnostic.nvim内联诊断显示glance.nvim定义 / 引用 / 实现 / 类型定义面板命令保留vim-fugitive+advanced-git-search.nvim深度 Git 操作与历史搜索git-conflict.nvim冲突选择助手nvim-dap+nvim-dap-ui调试 C / C++ / Rust / Go / PythonrustaceanvimRust runnables / debuggables / hover actions / 宏展开go.nvimGo 测试、覆盖率、结构体填充、tags、if err、接口实现grug-far.nvim项目级搜索替换面板nvim-bqfquickfix 预览增强persisted.nvim项目 session 保存与恢复dropbar.nvim顶部 breadcrumb / 上下文导航img-clip.nvim粘贴剪贴板图片im-select.nvim自动切换输入法image.nvim终端内图片显示mini.ai文本对象增强nvim-ufo代码折叠outline.nvim符号大纲nvim-treesitter-context顶部上下文nvim-ts-autotagHTML/JSX/Vue 标签自动闭合与联动重命名nvim-surround包裹 / 修改 / 删除配对符号与标签vim-matchup增强%匹配,支持语言结构与 HTML 标签vim-sleuth自动识别项目缩进风格smartyank.nvim支持 tmux / SSH 场景下的剪贴板同步todo-comments.nvimTODO 高亮与搜索trouble.nvim诊断与列表面板vimtex+texlabLaTeX 支持vim-visual-multi多光标编辑overseer.nvim项目任务运行器vim-dadbod+vim-dadbod-ui数据库连接、查询与表结构浏览kulala.nvimHTTP / API 请求调试cmp-pandoc-referencesMarkdown / LaTeX 文献引用补全- HTML 浏览器实时预览
nvim-emmetEmmet 包裹与 LSP 内联展开package-info.nvim在 package.json 内联显示 npm 版本crates.nvim在 Cargo.toml 内联显示 crate 版本nvim-highlight-colors内联高亮颜色码(含 Tailwind)- Tailwind CSS / React 语言服务
- Markdown 渲染与浏览器预览
lualine状态栏gitsignsGit 标记- 大文件模式:超过 2 MiB 或 20000 行时跳过 Treesitter / LSP / diagnostics / format / lint / expensive folds
neovim0.12+gitcurlgcc/clang/makenode/npm/npxripgrepfdfzflazygit- LaTeX 工具链:
latexmk ImageMagickimvmpvtaskwarrior
如果你要使用系统剪贴板,还需要安装:
- Wayland:
wl-clipboard - X11:
xclip或xsel
如果你要使用 LaTeX 预览,还需要安装一个 PDF 查看器,例如:
- Linux:
zathura
如果你已经有旧配置,建议先备份:
mv ~/.config/nvim ~/.config/nvim.bak然后把这套配置放到:
~/.config/nvim例如:
git clone <your-repo-url> ~/.config/nvim直接执行:
nvim首次启动时会自动:
- 安装
lazy.nvim - 拉取插件
- 安装部分 Mason 工具
安装完成后建议执行一次:
:Lazy sync:TSInstall bash bibtex c cmake cpp css dockerfile elm go haskell html http javascript json latex lua make matlab menhir markdown markdown_inline nginx powershell python query regex rust sql systemverilog toml tsx typescript vue vim vimdoc yaml执行:
:Mason确认这些工具已安装:
- LSP:
bashlsclangddocker_compose_language_servicedockerlselmlsemmet_language_servergoplshlshtmlcsslslua_lsmatlab_lsneocmakebasedpyrightrust_analyzersqllstailwindcsstaplotexlabveriblevtslsvue_lsjsonlsyamlls - Formatter / Linter / Language tools:
bibtex-tidycheckmakeshfmtshellcheckstyluaprettierdcmakelangcmake-lintgersemihadolinteslint_delm-formatelm-reviewmiss_hitnginx-config-formatter`sql-formatter" "sqlfluff" "stylelint" "taplo" "tex-fmt" "verible" "ruff" "clang-format" "clang-tidy" "gofumpt" "goimports" "golangci-lint" "gomodifytags" "gotests" "iferr" "impl" "fourmolu" - DAP:
codelldbdelvepython
nginx LSP 使用系统提供的 nginx-language-server,不由 Mason 安装。
Elm lint 使用外部安装的 elm-review。
C/C++ lint 使用系统提供的 clang-tidy。
SQL lint 只会在项目根目录存在 .sqlfluff 时启用。
Rust 诊断通过 rust_analyzer 使用 cargo clippy。
:checkhealth
:Lazy
:Mason<Space>ww:保存文件<Space>wq:关闭当前窗口<Space>ws/<Space>wv:横向切分 / 纵向切分<Space>w=:均分窗口大小<A-h/j/k/l>:聚焦左 / 下 / 上 / 右窗口<A-H/J/K/L>:调整窗口大小 (左 / 下 / 上 / 右)
<Space>e/<Space>E:切换文件树 / 在树中定位当前文件<Space>ff/<Space>fg/<Space>fb:查找文件 / 全文搜索 / Buffer<Space>fr/<Space>fc/<Space>fk/<Space>fh:最近文件 / 命令 / 键位 / 帮助<Space>fR/<Space>fw/<Space>fF:项目替换 / 替换光标单词 / 当前文件替换<Space>ft/<Space>fq:TODO 搜索 / TODO quickfix
<Space>ca/<Space>cr/<Space>cf:Code action / 重命名 / 格式化<Space>cs/<Space>cS:当前文件符号 / 工作区符号<Space>cd/<Space>cy/<Space>cY:行诊断 / 复制行诊断 / 复制 Buffer 诊断<Space>cl/<Space>cq/<Space>ct:手动 Lint / 诊断 quickfix / 切换内联诊断<Space>co/<Space>cc:切换符号大纲 / 切换代码上下文 (TSContext)<Space>cb/<Space>cB:面包屑导航 (Dropbar)K:LSP hover (悬停信息)[d/]d:上一个 / 下一个诊断[r/]r:上一个 / 下一个引用<Space>jd/<Space>jr/<Space>ji/<Space>jy:定义预览 / 引用查找 / 实现查找 / 类型定义预览
<Space>ac/<Space>ax/<Space>ag/<Space>ao:Claude / Codex / Gemini / OpenCode agent<Space>at:开启 / 关闭 Copilot<Space>ay:复制 agent 读取 quickfix 的提示词
<Space>gg:打开 lazygit<Space>ga/<Space>gB:Git 高级搜索 / 浏览器打开位置<Space>gd/<Space>gm/<Space>gh:Diffview / Merge 视图 / 文件历史<Space>gq:搜索冲突并写入 quickfix[h/]h:上一个 / 下一个 Git hunk[x/]x:上一个 / 下一个冲突<Space>gcc/<Space>gci/<Space>gcb:冲突处理 (Current / Incoming / Both)
- Database (
<leader>ld):<leader>ldd(UI) /<leader>lda(Add) /<leader>ldf(Find) - HTTP (
<leader>lH):<leader>lHs(Send) /<leader>lHa(All) /<leader>lHo(UI) - Rust (
<leader>lr):<leader>lrr(Run) /<leader>lrd(Debug) /<leader>lrc(Cargo.toml) - Go (
<leader>lg):<leader>lgt(Test) /<leader>lgc(Coverage) /<leader>lgi(if err) - HTML (
<leader>lh):<leader>lhs(Start preview) /<leader>lhS(Stop) /<leader>lhe(Emmet)
<Space>mi:插入剪贴板图片<Space>mI:显示 LaTeX 信息<Space>mc/<Space>mv/<Space>mt:LaTeX 编译 / 预览 / TOC<Space>mb:补全文献引用<Space>z/<Space>zs:Zen 模式 / 草稿列表<Space>xn/<Space>xN:通知历史 / 清除通知<Space>v:系统应用预览文件<Space>L:打开 Lazy UI<Space>rr/<Space>rl:运行项目任务 / 重试上一个任务
<S-h>/<S-l>:上一个 / 下一个 Buffer<A-q>:关闭当前 Buffer<Esc><Esc>:退出终端模式zR/zM:打开 / 关闭所有折叠
- 已启用
vimtex和texlab - 默认使用
latexmk编译,zathura预览 PDF
- 已启用
render-markdown.nvim内联渲染 - 文献补全依赖 Pandoc / Quarto 里的
bibliography:元数据
- 已启用
image.nvim终端图片显示 - 已启用
img-clip.nvim粘贴图片