0x01 安装方法
1.1 安装NeoVim
# 使用Scoop安装
scoop install neovim
# 或者使用winget
winget install Neovim.Neovim
# 验证安装
nvim --version1.2 安装LazyVim
# 1. 备份现有配置(如果有的话)
mv ~/.config/nvim/ ~/.config/nvim.bak
# 2. 克隆lazyvim模板
git clone https://github.com/LazyVim/starter ~/.config/nvim
# 删除.git目录
rm -rf ~/.config/nvim/.git
# 启动neovim,自动安装插件
nvim0x02 LazyVim默认快捷键分类
2.1 基础导航
| 快捷键 | 功能 | 说明 |
|---|---|---|
<Space> | Leader键 | 主要命令前缀 |
h/j/k/l | 光标移动 | 左/下/上/右 |
w/b | 单词跳转 | 下一个/上一个单词 |
gg/G | 文件跳转 | 文件开头/结尾 |
Ctrl+u/d | 页面滚动 | 向上/下滚动半页 |
zz | 居中显示 | 当前行居中 |
2.2 文件操作类
| 快捷键 | 功能 | 说明 |
|---|---|---|
<leader>ff | 查找文件 | Telescope文件搜索 |
<leader>fg | 全局搜索 | 搜索文件内容 |
<leader>fb | 缓冲区搜索 | 搜索打开的文件 |
<leader>e | 文件树 | 切换Neo-tree |
<leader>w | 保存文件 | 保存当前文件 |
<leader>q | 退出 | 退出当前窗口 |
2.3 窗口和标签页
| 快捷键 | 功能 | 说明 |
|---|---|---|
<leader>- | 水平分割 | 创建水平窗口 |
<leader>| | 垂直分割 | 创建垂直窗口 |
<C-h/j/k/l | 窗口切换 | 切换到不同的窗口 |
<S-h/l> | 标签切换 | 上一个/下一个标签 |
<leader><tab> | 标签管理 | 标签相关操作 |
2.4 编辑增强
| 快捷键 | 功能 | 说明 |
|---|---|---|
gcc | 切换注释 | 注释/取消注释行 |
gc | 块注释 | 可视模式下注释 |
<A-j/k> | 移动行 | 向上/下移动行 |
<S-A-j/k> | 复制行 | 向上/下复制行 |
<leader>ur | 重新加载 | 重新加载配置 |
2.5 搜索和替换
| 快捷键 | 功能 | 说明 |
|---|---|---|
/ | 向前搜索 | 搜索文本 |
? | 向后搜索 | 反向搜索文本 |
n/N | 搜索导航 | 下一个/上一个结果 |
<leader>sr | 搜索替换 | 全局搜索替换 |
2.6 LSP和代码
| 快捷键 | 功能 | 说明 |
|---|---|---|
<gd> | 跳转定义 | 跳转到定义 |
<gr> | 查找引用 | 查找所有引用 |
K | 悬浮文档 | 显示文档 |
<leader>ca | 代码操作 | LSP代码操作 |
<leader>cr | 重命名 | 重命名符号 |
<]d/[d | 诊断导航 | 下一个/上一个错误 |
2.7 Git操作
| 快捷键 | 功能 | 说明 |
|---|---|---|
<leader>gg | LazyGit | 打开Git界面 |
<leader>gb | Git Blame | 显示Git信息 |
]h/[h | Git Hunk | 下一个/上一个更改 |
修改快捷键的方法
在 ~/.config/nvim/lua/keymaps.lua中添加:
-- 示例:修改文件搜索快捷键
vim.keymap.set("n", "<C-p>", "<leader>ff", { desc = "Find Files" })
-- 示例:添加新的快捷键
vim.keymap.set("n", "<leader>h", ":nohlsearch<CR>", { desc = "Clear Highlight" })0x03 LazyVim默认插件
3.1 核心插件
| 插件 | 功能 | 默认启用 | 主要命令 |
|---|---|---|---|
| lazy.nvim | 插件管理器 | 是 | :Lazy |
| which-key.nvim | 快捷键提示 | 是 | 按<space>等待 |
| telescope.nvim | 模糊搜索 | 是 | <leader>ff/fg/fb |
| neo-tree.nvim | 文件浏览器 | 是 | <leader>e |
| bufferline.nvim | 标签页 | 是 | <S-h/l>切换 |
| lualine.nvim | 状态栏 | 是 | 自动显示 |
3.2 编辑增强
| 插件 | 功能 | 默认启用 | 主要命令 |
|---|---|---|---|
| nvim-treesitter | 语法高亮 | 是 | 自动工作 |
| nvim-autopairs | 自动配对 | 是 | 输入括号自动配对 |
| comment.nvim | 智能注释 | 是 | gcc/gc |
| indent-blankline | 缩进提示 | 是 | 自动显示 |
| nvim-surround | 环绕操作 | 是 | ys/ds/cs |
3.3 LSP和补全
| 插件 | 功能 | 默认启用 | 主要命令 |
|---|---|---|---|
| nvim-lspconfig | LSP配置 | 是 | gd/gr/K等 |
| mason.nvim | LSP安装器 | 是 | :Mason |
| nvim-cmp | 自动补全 | 是 | <Tab>补全 |
| trouble.nvim | 诊断面板 | 是 | <leader>xx |
3.4 Git集成
| 插件 | 功能 | 默认启用 | 主要命令 |
|---|---|---|---|
| gitsigns.nvim | Git状态显示 | 是 | ]h/[hGit块导航 |
| lazygit.nvim | Git界面 | 是 | <leader>gg |
0x04 自定义安装的插件
4.1 bullets.vim 项目符号自动化
配置文件:~/.config/nvim/lua/plugins/bullets.lua
return {
"bullets-vim/bullets.vim",
ft = { "markdown", "text", "gitcommit" },
config = function()
end,
}使用方法:
- 在Markdown文件中输入
- 项目1然后按Enter - 自动生成新的项目符号
- 支持多级嵌套和任务列表
[]
4.2 bufferline.nvim-增强标签页
配置文件:~/.config/nvim/lua/plugins/buffer-line.lua核心配置:
opts = {
options = {
mode = "buffers",
numbers = "ordinal", -- 显示序号
diagnostics = "nvim_lsp", -- 显示LSP诊断
separator_style = "thick",
}
}快捷键:
<leader>bp:固定缓冲区<leader>bo:关闭其他缓冲区<leader>1-9:跳转到指定序号缓冲区<S-h/l>:切换缓冲区
4.3 solarized-osaka.nvim 主题
配置文件:~/.config/nvim/lua/plugins/colorscheme.lua
return {
"craftzdog/solarized-osaka.nvim",
lazy = true,
priority = 1000,
opts = {
transparent = true, -- 透明背景
},
}4.4 Markdown增强套件
配置文件:~/.config/nvim/lua/plugins/markdown-enhanced.lua包含插件:
- vim-markdown:语法高亮增强
- vim-table-mode:表格编辑(
<leader>tm切换) - 自定义代码块:
<leader>mcb插入代码块
配置文件:~/.config/nvim/lua/plugins/markdown-preview.lua
keys = {
{ "<leader>mp", "打开预览" },
{ "<leader>ms", "关闭预览" },
}4.5 neo-tree.nvim 文件管理器
配置文件:~/.config/nvim/lua/plugins/neo-tree.lua快捷键:
<leader>e:切换文件树Y:复制路径到剪贴板0:用系统应用打开
4.6 智能编辑插件
配置文件:~/.config/nvim/lua/plugins/smart-editing.lua包含:
- nvim-autopairs:自动配对括号
- tabout.nvim:Tab键跳出括号
<Tab>:跳出括号<S-Tab>:反向跳出
4.7 Treesitter 增强
配置文件:~/.config/nvim/lua/plugins/treesitter.lua功能:
- 增强选择:
<C-space>扩展选择 - 文本对象:
af/if函数,ac/ic类 - 导航:
]f/[f函数间跳转
0x05 个人配置调整
5.1 基础选项(options.lua)
-- 主要设置
vim.g.mapleader = " " -- leader键
vim.opt.number = true -- 行号
vim.opt.conceallevel = 0 -- 显示所有字符
vim.opt.tabstop = 2 -- Tab宽度
vim.opt.shiftwidth = 2 -- 缩进宽度5.2 自定义快捷键(Keymaps.lua)
-- 自定义的快捷键
keymap.set("n", "x", '"_x') -- x 不影响剪贴板
keymap.set("n", "<Leader>p", '"_0p') -- 空格+p 粘贴
keymap.set("n", "<Leader>c", '"_c') -- 空格+c 删除并编辑
keymap.set("n", "te", ":tabedit") -- 新建标签页
keymap.set("n", "<Tab>", ":tabnext<Return>") -- Tab切换
keymap.set("n", "<s-tab>", ":tabprev<Return>") -- Shift+Tab切换0x06 常用操作指南
6.1 日常编辑流程
nvim filename.md:打开文件<leader>e:打开文件树预览<leader>ff:快速搜索文件<leader>fg:全局搜索内容gcc:注释/取消注释<leader>w:保存文件
6.2 Markdown写作流程
- 创建Markdown文件
- 输入
-开始列表(bullet.vim自动生成) <leader>mcb:插入代码块<leader>mp:预览效果<leadertm:启用表格模式
6.3 代码开发流程
<leader>ff:打开文件gd:跳转到定义gr:查找引用<leader>ca:代码操作<leader>cr:重命名<leader>gg:Git管理
6.4 插件管理
:Lazy:打开插件管理器:Mason:管理LSP服务器:LazyExtras:管理额外功能
0x07 重要提示
7.1 配置文件结构
~/.config/nvim/
├── init.lua # 入口文件
├── lua/
│ ├── config/
│ │ ├── options.lua # 基础选项
│ │ ├── keymaps.lua # 快捷键
│ │ └── lazy.lua # 插件管理器设置
│ └── plugins/ # 插件配置目录
│ ├── bullets.lua # 项目符号插件
│ ├── buffer-line.lua # 标签页插件
│ └── ... # 其他插件7.2 修改配置的最佳实践
- 备份:修改前先备份配置
- 重启:修改后重启NeoVim
- 测试:在测试文件中验证功能
- 渐进:一次只修改一个配置
7.3 故障排查
:checkhealth:检查健康状态:Lazy reload [plugin]:重新加载插件:messages:查看错误信息vim.notify():调试输出