一份以日常开发和维护为中心的模块化 Neovim 配置。
它基于 Lua 与 lazy.nvim,覆盖 LSP、补全、格式化、Lint、DAP
以及现代 tree-sitter 工作流,但文档重点放在可安装、可排障、
可维护,而不是堆砌插件列表。
- Neovim
>= 0.11 git- 推荐安装:
rg、fd、curl、unzip
git clone https://github.com/MysticalDevil/nvim ~/.config/nvim
nvim首次启动时会自动 bootstrap lazy.nvim,并安装缺失插件。
进入 Neovim 后,优先检查这几项:
:checkhealth
:Lazy
:Mason
:ConformInfo排查顺序建议固定为:
nvim --version:Lazy中的插件安装状态:Mason中的语言工具状态- 外部可执行程序是否在
PATH中
- 插件同步、更新、状态检查:
:Lazy - LSP 与外部工具安装状态:
:Mason - 格式化器与 formatter 路由:
:ConformInfo - 全局健康检查:
:checkhealth
- Gentoo:
会保留
/usr/share/vim/vimfiles在runtimepath中, 兼容系统级 Vim 脚本与插件。 - NixOS:
Mason 侧使用
PATH = "skip",避免覆盖系统包管理的工具链。
- 必需:
git - 强烈推荐:
rg、fd、curl、unzip - 按语言或功能启用: formatter、linter、DAP 相关外部工具
完整工具清单及分类表格详见 docs/tools.md。
启动入口是 init.lua。
它主要负责四件事:
- 检查 Neovim 版本门槛
- 安全加载核心模块并在失败时发出通知
- bootstrap 并加载插件系统
- 依次挂载 LSP、补全、格式化/Lint、DAP、命令与配色
这意味着即使部分模块失效,Neovim 仍尽量可启动并给出错误提示。
.
├── init.lua
├── ginit.vim
├── after/
└── lua/devil/
├── core/
├── plugins/
├── lsp/
├── complete/
├── fmt-lint/
├── dap/
├── commands/
├── utils/
└── health/
- 改基础行为:
lua/devil/core/ - 改插件声明与加载顺序:
lua/devil/plugins/specs/ - 改单插件行为:
lua/devil/plugins/configs/ - 改语言服务器:
lua/devil/lsp/ - 改 formatter / linter:
lua/devil/fmt-lint/ - 改调试能力:
lua/devil/dap/ - 改自定义命令或工具函数:
lua/devil/commands/、lua/devil/utils/
mapleader为Space- 核心按键定义在
lua/devil/core/mappings.lua - LSP 相关按键在 attach 后加载
这不是完整快捷键手册,而是为了减少未来冲突的命名约定:
<leader>f*:查找/检索<leader>w*:窗口管理<leader>b*:Buffer 管理<leader>g*:Git 相关<leader>l*:LSP / 诊断<leader>x*:问题列表 / Trouble 视图<leader>t*:开关 / 工具<leader>p*:性能分析<leader>c*:代码操作 / 重命名 / 配置命令
先看:
:Lazy是否安装完整:checkhealth是否有核心错误- 报错里提到的模块属于哪一层
core、plugins、lsp、fmt-lint或dap
init.lua 已做安全加载,因此部分插件失败时通常不会直接阻止启动。
优先检查:
:Mason中是否已安装对应工具:echo exepath('tool')是否能找到外部命令- 对应 filetype 的配置是否存在于
lua/devil/lsp/或lua/devil/fmt-lint/ :ConformInfo或相关 LSP 日志是否有明确错误
欢迎提交 issue 与 PR。 如果要改动行为,请尽量同时更新对应 README 段落, 避免文档与实现继续漂移。