一个基于 Lua 配置的现代 Neovim 编辑器,使用 lazy.nvim 进行插件管理。
- 插件管理: 使用 lazy.nvim 实现高效的插件加载
- 代码格式化: conform.nvim + stylua 支持保存时自动格式化
- LSP 支持: 通过 lspconfig 和 mason.nvim 提供强大的语言服务器支持
- 模糊搜索: Telescope 集成,支持文件搜索、grep、内容搜索等
- 语法高亮: Treesitter 提供精确的语法高亮
- UI 增强: 状态栏、文件浏览器、书签等多功能插件
~/.config/nvim/
├── init.lua -- 入口文件
├── AGENTS.md -- Agent 开发指南
├── .stylua.toml -- stylua 格式化配置
├── lua/
│ ├── plugin.lua -- 插件列表和 lazy.nvim 配置
│ ├── editor.lua -- 编辑器基础设置
│ ├── keybindings.lua -- 快捷键映射
│ ├── config/ -- 插件配置
│ │ ├── lsp.lua -- LSP 配置
│ │ ├── telescope.lua -- Telescope 配置
│ │ └── ...
│ └── utils/ -- 工具函数
└── ...
- lazy.nvim - 插件管理器
- conform.nvim - 代码格式化
- vimloader.nvim - 启动加载器
- mason.nvim - LSP 服务器管理
- lspconfig.nvim - LSP 客户端配置
- nvim-cmp - 代码补全
- nvim-treesitter - 语法高亮
- Telescope.nvim - 模糊搜索
- which-key.nvim - 快捷键提示
- nvim-web-devicons - 文件图标
- lualine.nvim - 状态栏
- bufferline.nvim -- 缓冲区标签页
- gitsigns.nvim - Git 状态显示
- vim-surround - 环绕编辑
- vim-repeat - 重复操作增强
- Commentary.nvim - 注释工具
-
备份现有配置(如果有):
mv ~/.config/nvim ~/.config/nvim.backup
-
克隆配置:
git clone https://github.com/your-repo/nvim-config.git ~/.config/nvim -
启动 Neovim:
nvim
-
lazy.nvim 会自动安装所有插件(首次启动可能需要几分钟)
| 快捷键 | 说明 |
|---|---|
<Space> |
leader 键 |
<Esc> |
退出当前模式 |
jj |
快速退出插入模式 |
| 快捷键 | 说明 |
|---|---|
<leader>ff |
查找文件 (Telescope) |
<leader>fg |
搜索内容 (Telescope grep) |
<leader>fb |
搜索缓冲区 (Telescope buffers) |
<leader>fh |
搜索帮助文档 (Telescope help) |
<leader>fr |
打开最近文件 (Telescope recent) |
| 快捷键 | 说明 |
|---|---|
<leader>gg |
打开lazygit |
]c |
下一个 git hunk |
[c |
上一个 git hunk |
<leader>hs |
stage hunk |
<leader>hr |
reset hunk |
| 快捷键 | 说明 |
|---|---|
<leader>sv |
垂直分屏 |
<leader>sh |
水平分屏 |
<leader>sc |
关闭当前窗口 |
<leader>so |
关闭其他窗口 |
| 快捷键 | 说明 |
|---|---|
gd |
跳转定义 |
gD |
跳转声明 |
gr |
查找引用 |
K |
显示 hover 文档 |
<leader>rn |
重命名 |
<leader>ca |
代码操作 |
| 快捷键 | 说明 |
|---|---|
]m |
下一个函数 |
[m |
上一个函数 |
]M |
下一个类/模块 |
[M |
上一个类/模块 |
在 lua/plugin.lua 中添加插件配置:
{
"author/plugin-name",
event = "BufReadPre",
dependencies = { "dependency-plugin" },
config = function()
require("config.plugin_name").setup()
end,
},然后创建对应的配置文件 lua/config/plugin_name.lua:
local M = {}
M.setup = function()
require("plugin_name").setup({
-- your options
})
end
return M在 lua/config/conform.lua 中添加或修改格式化器:
local formatters = require("conform.formatters")
formatters.precedence = {
"stylua",
"prettier",
-- 添加更多格式化器
}项目使用 stylua 进行 Lua 代码格式化:
# 格式化所有文件
stylua lua/
# 检查格式化(不修改)
stylua --check lua/确保网络畅通,可以尝试:
:Lazy repair检查 mason.nvim 安装的服务器:
:Mason手动安装服务器:
:MasonInstall <server-name>检查 conform.nvim 配置:
:ConformInfo:Lazy updategit pull
:Lazy sync欢迎提交 Issue 和 Pull Request!
MIT License