LazyVim

1. LazyVim

LazyVim 是一个开箱即用的 Neovim 配置方案:由 💤 lazy.nvim 驱动,把 Neovim 变成完整的 IDE,同时保持高度可定制。本文整理自官方中文文档:LazyVim 官方文档(中文),涵盖安装步骤与全部按键映射速查。

[!info] 阅读导览
第 1 章 入门指南:特性、使用要求与安装 → 第 2 章 按键映射:通用映射与 LSP 映射 → 第 3 章 插件按键映射:16 个插件的速查表

1.1. 🚀 入门指南

LazyVim 是由 💤 lazy.nvim 驱动的 Neovim 配置,可以容易地自定义并扩展您的配置。

image

1.1.1. ✨ 特性

  • 🔥 将你的 Neovim 变成一个完整的 IDE
  • 💤 使用 lazy.nvim 轻松自定义并扩展你的配置
  • 🚀 速度很快
  • 🧹 对 options、autocmds 和 keymaps 进行合理地默认设置
  • 📦 预先配置了大量的插件,可随时使用

1.1.2. ⚡️ 使用要求

  • Neovim >= 0.11.2(需要使用 LuaJIT 构建)
  • Git >= 2.19.0(用于支持部分克隆)
  • Nerd Font v3.0 及以上(可选,用于显示部分图标)
  • lazygit(可选)
  • tree-sitter-cli 与 C 编译器(用于 nvim-treesitter,可选)
  • live grep:ripgrep
  • 文件查找:fd
  • 支持真彩色(true color)与 undercurl 的终端模拟器:

1.1.3. ⚡️ 安装 LazyVim Starter(PowerShell)

使用 PowerShell 安装 LazyVim Starter。

  1. 备份您当前的 Neovim 文件(可选,但建议):
Move-Item $env:LOCALAPPDATA\nvim $env:LOCALAPPDATA\nvim.bak
Move-Item $env:LOCALAPPDATA\nvim-data $env:LOCALAPPDATA\nvim-data.bak
  1. 克隆启动器:
git clone https://github.com/LazyVim/starter $env:LOCALAPPDATA\nvim
  1. 删除 .git 文件夹,之后可以将其添加到你自己的仓库:
Remove-Item $env:LOCALAPPDATA\nvim\.git -Recurse -Force
  1. 启动 Neovim:
nvim

starter 中的文件包含大量注释,可以参考它们来了解如何自定义 LazyVim。

1.2. ⌨️ 按键映射

LazyVim 使用 which-key.nvim 来帮助您记住按键映射。只需按下类似 <space> 的任何按键,就会弹出一个包含所有以 <space> 开头的按键映射面板。

image

1.2.1. 通用映射

按键 描述 模式
<C-h> 转到左边窗口 n
<C-j> 转到下边窗口 n
<C-k> 转到上边窗口 n
<C-l> 转到右边窗口 n
<C-Up> 增大窗口高度 n
<C-Down> 减小窗口高度 n
<C-Left> 减小窗口宽度 n
<C-Right> 增大窗口宽度 n
<A-j> 向下移动 n、i、v
<A-k> 向上移动 n、i、v
<S-h> 上一个缓冲区 n
<S-l> 下一个缓冲区 n
[b 上一个缓冲区 n
]b 下一个缓冲区 n
<leader>bb 切换到其他缓冲区 n
<leader>` 切换到其他缓冲区 n
<esc> Esc 并清除高亮搜索 i、n
<leader>ur 重绘 / 清除高亮搜索 / 更新 diff n
gw 搜索光标所在的单词 n、x
n 下一个搜索结果 n、x、o
N 上一个搜索结果 n、x、o
<C-s> 保存文件 i、v、n、s
<leader>l 打开 lazy 插件面板 n
<leader>fn 新建文件 n
<leader>xl 位置列表(Location List) n
<leader>xq 快速修复列表(Quickfix List) n
<leader>uf 切换保存时格式化 n
<leader>us 切换拼写检查 n
<leader>uw 切换自动换行 n
<leader>ul 切换行号 n
<leader>ud 切换诊断 n
<leader>uc 切换 Conceal n
<leader>gg Lazygit(root 目录) n
<leader>gG Lazygit(当前目录) n
<leader>qq 全部退出 n
<leader>ui 检查光标位置 n
<leader>ft 终端(root 目录) n
<leader>fT 终端(当前目录) n
<esc><esc> 进入普通模式 t
<leader>ww 其他窗口 n
<leader>wd 删除窗口 n
<leader>w- 在下方分割窗口 n
<leader>w| 在右侧分割窗口 n
<leader>- 在下方分割窗口 n
<leader>| 在右侧分割窗口 n
<leader><tab>l 最后一个标签页 n
<leader><tab>f 第一个标签页 n
<leader><tab><tab> 新建标签页 n
<leader><tab>] 下一个标签页 n
<leader><tab>d 关闭标签页 n
<leader><tab>[ 上一个标签页 n

1.2.2. LSP 映射

按键 描述 模式
<leader>cd 行级诊断 n
<leader>cl LSP 信息 n
gd 转到定义 n
gr 引用(References) n
gD 转到声明 n
gI 转到实现 n
gt 转到类型定义 n
K 悬停 n
gK 签名帮助(Signature Help) n
<C-k> 签名帮助(Signature Help) i
]d 下一个诊断 n
[d 上一个诊断 n
]e 下一个错误 n
[e 上一个错误 n
]w 下一个警告 n
[w 上一个警告 n
<leader>ca 代码操作(Code Action) n、v
<leader>cf 格式化文档(Format Document) n
<leader>cf 格式化范围(Format Range) v
<leader>cr 重命名 n

1.3. 插件按键映射

1.3.1. bufferline.nvim

按键 描述 模式
<leader>bp 固定缓冲区 n
<leader>bP 删除未固定的缓冲区 n

1.3.2. flit.nvim

按键 描述 模式
f f n、x、o
F F n、x、o
t t n、x、o
T T n、x、o

1.3.3. leap.nvim

按键 描述 模式
s 向前跳转 n、x、o
S 向后跳转 n、x、o
gs 跨窗口跳转 n、x、o

1.3.4. mason.nvim

按键 描述 模式
<leader>cm 打开 Mason n

1.3.5. mini.bufremove

按键 描述 模式
<leader>bd 删除缓冲区 n
<leader>bD 删除缓冲区(强制) n

1.3.6. mini.surround

按键 描述 模式
gza 添加包围符号 n、v
gzd 删除包围符号 n
gzf 查找右侧包围符号 n
gzF 查找左侧包围符号 n
gzh 高亮包围符号 n
gzr 替换包围符号 n
gzn 更新 MiniSurround.config.n_lines n

1.3.7. neo-tree.nvim

按键 描述 模式
<leader>fe 文件浏览器(root 目录) n
<leader>fE 文件浏览器(当前目录) n
<leader>e 文件浏览器(root 目录) n
<leader>E 文件浏览器(当前目录) n

1.3.8. noice.nvim

按键 描述 模式
<S-Enter> 重定向命令行 c
<leader>snl Noice 上一条消息 n
<leader>snh Noice 消息历史 n
<leader>sna Noice 全部消息 n
<C-f> 向前滚动 i、n、s
<C-b> 向后滚动 i、n、s

1.3.9. nvim-notify

按键 描述 模式
<leader>un 删除所有通知 n

1.3.10. nvim-spectre

按键 描述 模式
<leader>sr 在文件中替换(Spectre) n

1.3.11. nvim-treesitter

按键 描述 模式
<C-Space> 扩大选择 n
<BS> 缩小选择 x

1.3.12. persistence.nvim

按键 描述 模式
<leader>qs 恢复 Session n
<leader>ql 恢复上次 Session n
<leader>qd 不保存当前 Session n

1.3.13. telescope.nvim

按键 描述 模式
<leader>, 切换缓冲区 n
<leader>/ 在文件中查找(Grep) n
<leader>: 命令历史记录 n
<leader><space> 查找文件(root 目录) n
<leader>fb 缓冲区列表 n
<leader>ff 查找文件(root 目录) n
<leader>fF 查找文件(当前目录) n
<leader>fr 最近文件 n
<leader>gc 提交记录 n
<leader>gs Git 状态 n
<leader>sa 自动命令 n
<leader>sb 在当前缓冲区中搜索 n
<leader>sc 命令历史 n
<leader>sC 所有命令列表 n
<leader>sd 诊断 n
<leader>sg Grep(root 目录) n
<leader>sG Grep(当前目录) n
<leader>sh 全局帮助页 n
<leader>sH 搜索高亮组 n
<leader>sk 按键映射 n
<leader>sM 手册页 n
<leader>sm 跳转到标记 n
<leader>so 选项 n
<leader>sR 恢复上次搜索 n
<leader>sw 查找单词(root 目录) n
<leader>sW 查找单词(当前目录) n
<leader>uC 预览颜色方案(主题) n
<leader>ss 跳转到符号 n
<leader>sS 跳转到符号(工作区) n

1.3.14. todo-comments.nvim

按键 描述 模式
]t 下一个 TODO 注释 n
[t 上一个 TODO 注释 n
<leader>xt TODO(Trouble) n
<leader>xT TODO / FIX / FIXME(Trouble) n
<leader>st TODO n

1.3.15. trouble.nvim

按键 描述 模式
<leader>xx 文档诊断(Trouble) n
<leader>xX 工作区诊断(Trouble) n
<leader>xL 位置列表(Trouble) n
<leader>xQ 快速修复列表(Trouble) n
[q 上一个 trouble / quickfix 条目 n
]q 下一个 trouble / quickfix 条目 n

1.3.16. vim-illuminate

按键 描述 模式
]] 转到下一个引用 n
[[ 转到上一个引用 n