这是一套基于 lazy.nvim 管理插件的 Neovim 配置,目标是同时适合终端 Neovim 和 Neovide 使用。
要求:Neovim >= 0.12。
init.lua:启动入口,按顺序加载配置。lua/config/options.lua:通用编辑器选项,终端和 Neovide 都会使用。lua/config/keymaps.lua:通用快捷键。lua/config/gui.lua:只在 Neovide 中生效的图形界面配置。lua/config/health.lua:启动后检查常见依赖,缺少工具时给出安装提示。lua/config/plugins.lua:插件开关总表;想关闭一组插件,注释一行import即可。lua/plugins/*.lua:每类插件一个文件,方便阅读和修改。neovide/config.toml:Neovide 应用级配置。
启动时会显示 LazyVim 风格的友好首页,由 folke/snacks.nvim 提供。
首页里可以直接按键:
p:查找文件n:新建文件g:全文搜索r:最近文件c:编辑 Neovim 配置l:打开 Lazy 插件管理器q:退出
- 补全:
saghen/blink.cmp - 文件树:
nvim-tree/nvim-tree.lua - Buffer 标签栏:
akinsho/bufferline.nvim - 模糊查找:
nvim-telescope/telescope.nvim - 光标跳转:自定义
f可见区字符跳转 +folke/flash.nvim - 多光标编辑:
mg979/vim-visual-multi - 撤销历史树:
mbbill/undotree - 终端:
akinsho/toggleterm.nvim - Git 行内状态:
lewis6991/gitsigns.nvim - 启动页/通知/输入框:
folke/snacks.nvim - 快捷键提示:
folke/which-key.nvim - 主题:
folke/tokyonight.nvim - LSP 基础:
mason.nvim、mason-lspconfig.nvim、nvim-lspconfig - 格式化:
conform.nvim - 语法高亮:
nvim-treesitter/nvim-treesitter
主题固定为 LazyVim 默认风格的 TokyoNight Moon:
- Neovim 使用
tokyonight-moon。 - 主题通过
require("tokyonight").load()加载,贴近 LazyVim 默认方式。 auto-dark-mode.nvim保留但默认禁用,避免偏离 LazyVim 默认暗色主题。- Catppuccin 暂时只是备用主题,默认不会启用。
<Space> 是 leader 键。按下 <Space> 后稍等一下,which-key.nvim 会弹出快捷键提示。
常用跳转:按 f,当前 tab 的所有可见窗口会变灰;再输入目标字符,所有相同字符会显示标签;最后输入标签即可跳转。
完整快捷键表见 docs/keymaps.md。
Neovim 里的命令一般以 : 开头,例如 :Lazy、:Mason、:TSInstall bash。
常用命令和排查方法见 docs/commands.md,里面记录了插件管理、Treesitter parser 安装、LSP、文件树、Telescope 等命令的用途。
配置启动后会检查常见工具:
git:安装和更新插件需要。rg:Telescope 全文搜索需要。- Linux 剪贴板工具:终端复制粘贴可能需要
wl-clipboard或xclip。
缺少工具时,Neovim 会给出 macOS、Ubuntu/Debian、Fedora 的安装提示。
C 编译器和 tree-sitter CLI 只在安装/更新原生插件或 Treesitter parser 时才检查,平时启动不会打扰。需要 C 编译器时会按顺序尝试:
zig ccgcc
如果两者都不可用,会在真正构建插件时提示安装命令。
这套配置使用 nvim-treesitter 的 main 分支,更适合 Neovim 0.12 之后的新版本。
新版 Treesitter 需要 tree-sitter 命令行工具:
brew install tree-sitter-cliLinux 发行版里一般叫 tree-sitter-cli。缺少时启动后会提示安装命令。
为了保持启动流畅,tree-sitter 和 C 编译器只会在你运行 :Lazy build nvim-treesitter、:Lazy sync 等真正需要构建 parser 的时候检查。
高亮启用方式使用 Neovim 原生 vim.treesitter.start();临时脚本、Scratch 代码 buffer 会优先按 filetype 启用,高亮缺失时再按文件后缀推断,例如 .sh 使用 bash parser、.lua 使用 lua parser。启动页、插件面板、Telescope 预览窗口和超大文件会自动跳过,避免工具窗口触发 parser 报错。
更新 Treesitter 和 parser 时运行:
:Lazy update nvim-treesitter如果某个语言没有 Treesitter 高亮,例如 bash/sh 文件,可以运行:
:TSInstall bash如果刚修改了配置里的 parser 列表,可以运行:
:Lazy build nvim-treesitter更多命令说明见 docs/commands.md。
保存文件时会根据文件类型调用格式化工具,找不到专用工具时回退到 LSP。Mason 会自动准备 Stylua、Prettierd、Ruff 和 goimports;Gofmt、Rustfmt 跟随 Go/Rust 工具链。按 <Space>cf 可手动格式化;:FormatDisable 全局关闭保存前格式化,:FormatDisable! 只关闭当前 buffer,:FormatEnable 重新启用。
编辑 lua/config/plugins.lua,注释对应一行即可,例如关闭文件树:
-- { import = "plugins.filetree" },第一次启动会自动安装 lazy.nvim 和插件。安装完成后,可以运行:
:Lazy查看插件状态,或运行:
:checkhealth检查 Neovim 环境是否健康。