LazyVim 使用教程与快捷键指南
LazyVim 使用教程与快捷键指南
一份面向初学者的 LazyVim 教程与快捷键速查手册。
基于 LazyVim 16.x 默认配置编写;运行时:Neovim 0.12+、LazyVim 16.x。
先记住这四件事
<leader>就是空格键。下文的<leader>ff要按作「空格、f、f」。\是<localleader>。- 不必背完。普通模式按一次
Space,等待 which-key 弹出可继续按的菜单;Space ?只看当前缓冲区可用的按键。 :Tutor是最好的 Vim 基础交互教程;完成它后,优先练「找文件、全文搜索、跳转定义、诊断、Git」。<Esc>不只退出模式:它也会清除当前搜索高亮。<C-s>在普通、插入和可视模式都保存。
按键记号:<C-x> = Ctrl+x,<S-x> = Shift+x,<A-x> = Alt+x;n/i/x/v/t 分别表示普通/插入/操作符等待/可视/终端模式。
LazyVim 简介
LazyVim 是一套基于 lazy.nvim 插件管理器的 Neovim 配置框架。它在 Neovim 原生的基础上集成了一整套开箱即用的工作流,覆盖文件检索、代码补全、LSP 智能提示、格式化、Git 集成、终端等日常高频操作。
核心工作流包括:
- Snacks:文件检索(Picker)、文件浏览器(Explorer)、终端、通知
- blink.cmp:代码补全引擎
- LSP/Mason:语言服务器管理与智能提示
- Conform:代码格式化
- Gitsigns:行内 Git 变更标记
- Trouble:诊断与问题集中面板
- Flash:快速跳转
- which-key:按键提示菜单
- render-markdown 与 markdown-preview:Markdown 渲染与预览
LazyVim 通过 Extras 机制按需启用语言和工具支持。常用 Extras 包括各编程语言(Python、Rust、Go 等)、AI 辅助(Copilot、Claude Code 等)、Markdown、JSON 等。启用 Extra 只需在 lazyvim.json 中添加对应条目,然后重启 Neovim。
推荐的学习路线(约 7 天)
| 阶段 | 练习目标 | 必练按键 |
|---|---|---|
| 第 1 天 | 先会移动、编辑、保存、撤销 | h j k l、w b e、i a o、u、<C-r>、<C-s> |
| 第 2 天 | 把文件与缓冲区当工作台 | Space ff、Space fF、Space fb、Space e、[b/]b |
| 第 3 天 | 用搜索代替手动翻目录 | Space sg、Space sG、Space sw、Space sr、s |
| 第 4 天 | 在代码里跳转和修复 | gd、gr、K、Space ca、Space cr、Space cf |
| 第 5 天 | 看懂问题、格式化、做 Git 操作 | ]d/[d、Space xx、Space gg、Space gh* |
| 第 6 天 | 多窗口、终端、会话 | <C-h/j/k/l>、`Space |
| 第 7 天 | Markdown、代码项目与 AI 辅助工作流 | Space cp、Space um、gd、<C-y>,并理解下方冲突说明 |
每天都用得上的核心按键
编辑、移动与窗口
| 按键 | 做什么 | 建议 |
|---|---|---|
h j k l |
左、下、上、右移动;j/k 会顺着屏幕换行移动 |
从 :Tutor 开始练,不用方向键 |
w / b / e |
下个词开头 / 上个词开头 / 当前或下个词结尾 | 配合 d、c、v 是 Vim 的高收益组合 |
0 / ^ / $ |
行首 / 首个非空字符 / 行尾 | 行内定位首选 |
gg / G |
文件开头 / 结尾 | 可加数字,如 42G |
f{字符} / t{字符} |
跳到字符 / 停在字符前 | ; 重复,, 反向重复 |
s |
Flash:屏幕出现标签后按标签直达 | 这是跨行定位的最快方式之一 |
S |
按语法树选择目标 | 适合函数、调用、代码块 |
u / <C-r> |
撤销 / 重做 | 不要害怕试改 |
. |
重复上一次修改 | 例如一次 ciw 后可对下个词按 . |
gcc |
注释/取消注释当前行 | 选择多行后按 gc |
gco / gcO |
在下方/上方新增一条注释 | 比手动插入再注释快 |
<A-j> / <A-k> |
当前行或选中块下移/上移 | 普通、插入、可视模式都可用 |
<C-h/j/k/l> |
切到左/下/上/右窗口 | 多分屏最常用 |
<C-箭头> |
调整窗口高宽 | 精细调布局 |
| `Space | /Space -` |
右侧垂直分屏 / 下方水平分屏 |
Space wm 或 Space uZ |
放大/还原当前窗口 | 专注某个文件时用 |
Space uz |
Zen 专注模式 | 写作或阅读时用 |
缓冲区、标签页、保存与退出
缓冲区(buffer)是已打开文件,不等于操作系统窗口。关闭缓冲区通常不会破坏其他分屏布局。
| 按键 | 做什么 |
|---|---|
<C-s> |
保存当前文件(插入/普通/可视模式均可) |
<S-h> / <S-l>,或 [b / ]b |
上一个/下一个缓冲区 |
Space fb / Space fB |
选择缓冲区 / 选择全部缓冲区 |
Space bb 或 Space ` |
返回上一个缓冲区 |
Space bd |
安全关闭当前缓冲区(保留窗口) |
Space bo / Space bi |
关闭其他缓冲区 / 不可见缓冲区 |
Space bD |
关闭缓冲区和窗口 |
Space <Tab> <Tab> |
新建标签页 |
Space <Tab> [ / ] |
前一个/后一个标签页 |
Space <Tab> d / o |
关闭当前标签页 / 仅保留当前标签页 |
Space qq |
退出全部 Neovim 窗口 |
Vim 本体:先学会”操作符 + 范围”
Vim 的高效不在于记住很多独立快捷键,而在于把命令像一句短语一样组合:
1 | |
例如,d 是删除,c 是修改,y 是复制;w 是移动到下一个词,$ 是移动到行尾,iw 是”当前词内部”。因此:
dw:删除到下一个词;3dw:连续删除三个词。d$:删除到行尾;也可用等价短命令D。ciw:改写当前词;ci":改写双引号里面的内容。yap:复制整个段落;=ap:重新缩进整个段落。
操作符重复一次通常表示”整行”:dd 删除行、cc 修改行、yy 复制行、>> / << 增加/减少缩进、== 自动缩进当前行。掌握这个语法后,新动作通常不需要再死记。
进入插入模式与基础修改
| 按键 | Vim 原生含义 | 示例或区别 |
|---|---|---|
i / a |
在光标前 / 后插入 | a 适合从当前字符后继续写 |
I / A |
在本行首个非空字符 / 行尾插入 | 追加行尾内容优先用 A |
o / O |
在下方 / 上方新建一行并插入 | 不必先移动到行尾 |
x / X |
删除光标下 / 前一个字符 | 4x 删除四个字符 |
r{字符} |
用一个字符替换光标下字符 | r, 把当前字符改为逗号 |
R |
进入连续替换模式 | 普通模式的 R 是 Vim 原生行为 |
J |
把下一行接到当前行 | 默认会整理连接处的空格 |
~ |
切换当前字符大小写 | gUiw / guiw 可转换整个词 |
u / <C-r> |
撤销 / 重做 | U 不是重做,不要混淆 |
. |
重复最近一次修改 | 先 ciw 改词,再到别处按 . |
<Esc> |
回到普通模式 | LazyVim 中还会顺便清除搜索高亮 |
更完整的移动范围
| 按键 | 做什么 | 适合组合 |
|---|---|---|
w / W |
下一个词 / 下一个以空白分隔的大词开头 | dw、cW |
b / B |
上一个词 / 大词开头 | db、yB |
e / E / ge |
词尾 / 大词词尾 / 上一个词尾 | de、cge |
0 / ^ / $ |
第 0 列 / 首个非空字符 / 行尾 | d^、y$ |
gg / G / {数字}G |
文件首 / 文件尾 / 指定行 | 100G 到第 100 行 |
{ / } |
上一个 / 下一个空行分隔的段落 | dap 也可直接操作段落 |
( / ) |
上一个 / 下一个句子 | 写 Markdown 或长文本时有用 |
% |
在匹配的括号、方括号、花括号间跳转 | d% 删除成对括号间范围 |
<C-d> / <C-u> |
向下 / 向上滚半屏 | 长文件中比反复按 j/k 快 |
<C-f> / <C-b> |
向下 / 向上滚一屏 | Noice 浮窗可滚动时会优先滚浮窗 |
zz / zt / zb |
把当前行放到屏幕中间 / 顶部 / 底部 | 跳转后用 zz 恢复视野 |
; / , |
重复 / 反向重复最近的 f、t 查找 |
例如 fa;;; |
文本对象:在结构内部精准修改
i 表示 inner(不含边界),a 表示 around(包含边界,单词对象通常还包含相邻空白)。文本对象要放在操作符或可视模式之后使用,不能单独移动光标。
| 文本对象 | 范围 | 常用组合 |
|---|---|---|
iw / aw |
当前词内部 / 整个词 | ciw 改词,daw 连同空白删除词 |
iW / aW |
当前”大词”内部 / 整体 | 路径、URL、带标点标识符更好用 |
i" / a" |
双引号内部 / 连同双引号 | ci"、ya" |
i' / a',i` / a` |
单引号或反引号内部 / 连同边界 | 代码字符串与 Markdown 行内代码 |
i) / a),i] / a],i} / a} |
括号内部 / 连同括号 | ci) 改参数,da} 删代码块 |
it / at |
HTML/XML 标签内部 / 连同标签 | cit 修改标签内容 |
is / as |
句子内部 / 整个句子 | 文本编辑 |
ip / ap |
段落内部 / 整个段落 | yip、=ap |
复制、粘贴、寄存器与剪贴板
| 按键 | 做什么 | 注意 |
|---|---|---|
yy |
复制当前行 | 可加次数,如 3yy;LazyVim 中 Y 是复制到行尾,等价于 y$ |
y{范围} |
复制指定范围 | yiw、y$、yap |
p / P |
在光标后 / 前粘贴 | 行复制后对应粘到下 / 上方 |
gp / gP |
像 p / P 一样粘贴,但把光标留在新文本之后 |
连续处理时更顺手 |
"0p |
粘贴最近一次”复制”的内容 | 删除操作污染默认寄存器后很好用 |
"_d{范围} |
删除但丢进黑洞寄存器 | 如 "_diw,不会覆盖准备粘贴的内容 |
"+y{范围} / "+p |
与系统剪贴板复制 / 粘贴 | 例如可视选择后按 "+y |
:reg |
查看寄存器 | Space s" 也可用 Picker 查看 |
在可视模式中,直接按 p 会用寄存器内容替换选择区,而被替换内容通常会进入默认寄存器。若想反复粘贴同一内容,可用 "0p,或使用黑洞寄存器避免覆盖。
可视选择、缩进与大小写
| 按键 | 做什么 |
|---|---|
v / V / <C-v> |
字符选择 / 整行选择 / 矩形块选择 |
o |
在可视选择的两端之间切换光标 |
gv |
重新选择上一次可视区域 |
> / < |
增加 / 减少选中内容缩进;可用 gv 再选 |
= |
自动缩进选中内容 |
gU / gu / ~ |
选中内容转大写 / 小写 / 反转大小写 |
矩形选择后 I / A |
在多行块的左侧 / 右侧同时插入;输入后按 <Esc> 应用 |
搜索、替换、标记、跳转与宏
| 按键或命令 | 做什么 | 示例 |
|---|---|---|
/文本 / ?文本 |
向下 / 向上搜索 | 回车确认,n / N 继续 |
* / # |
向下 / 向上搜索光标下完整单词 | 查同名变量很方便 |
:%s/旧/新/gc |
全文件逐项确认替换 | g 表示每行全部,c 表示确认 |
:'<,'>s/旧/新/g |
仅替换可视选区 | 选中后输入 : 会自动带出范围 |
m{小写字母} |
在当前文件设置标记 | ma 设置标记 a |
`{字母} / '{字母} |
精确回到标记 / 回到标记所在行 | `a 比 'a 更精确 |
<C-o> / <C-i> |
跳转列表后退 / 前进 | gd、搜索、文件跳转后非常重要 |
g; / g, |
上一个 / 下一个修改位置 | 找回刚才改过的地方 |
qa … q |
把一串操作录到寄存器 a | 状态栏会显示正在录制 |
@a / @@ / 10@a |
执行宏 a / 重复最近宏 / 执行十次 | 先在一行录好,再批量应用 |
执行全文件替换和宏前可先保存;结果不对就按 u 撤销。宏最稳的写法是让每轮从可预测的位置开始,并用 j、搜索或 n 明确移动到下一处。
Vim 原生键与 LazyVim 默认映射的冲突
这里的”冲突”是指 LazyVim 给一些 Vim 原生按键赋予了新动作。官方快捷键页是 LazyVim 核心 + 所有可选 Extras/插件 的总索引,不代表表中每项都在你的环境中启用。是否生效取决于已启用的 Extra、插件加载顺序、当前模式和 LSP 是否附着;忘记时用 Space sk 或 :verbose nmap {按键} 查运行时结果。
LazyVim 默认的直接覆盖
| 按键 | Vim / Neovim 原生行为 | LazyVim 默认行为 | 想用原生动作怎么办 |
|---|---|---|---|
j / k |
按实际文件行向下 / 向上 | 没有数字前缀时按屏幕显示行移动,长行换行后也逐屏幕行走 | gj / gk 明确走屏幕行;要走实际行可用 1j / 1k |
H / L |
跳到屏幕顶部 / 底部附近 | 上一个 / 下一个缓冲区 | 用 zt / zb 调整视野;必须执行原生命令可输入 :normal! H / :normal! L |
s |
删除当前字符并进入插入,等价于 cl |
Flash 快速跳转 | 用 cl |
S |
修改整行,等价于 cc |
Flash Treesitter 结构选择 | 用 cc |
<C-h/j/k/l> |
左移、换行式下移、少用/重绘等原生动作 | 切换到左 / 下 / 上 / 右窗口 | 左右和上下移动用 h/j/k/l;重绘与清搜索用 Space ur |
<C-s> |
Vim 普通编辑中没有常用修改动作;某些终端会把它当流控 | 普通、插入、可视模式保存文件 | 原生命令行保存仍可用 :w |
<C-Space> |
终端通常把它编码为 <C-@>;普通模式原生未使用 |
Treesitter 增量选择 | 没有丢失常用的 Vim 原生动作 |
可视模式 R |
用输入内容替换选区 | Flash Treesitter Search | 选中后用 c 修改 |
行为被增强,但核心语义仍保留
| 按键 | LazyVim 的变化 | 实际影响 |
|---|---|---|
<Esc> |
退出模式之外还清除搜索高亮 | 原来的退出行为仍保留 |
n / N |
保持”下一项 / 上一项”的直觉,并在需要时展开折叠 | 搜索结果仍按相同按键继续 |
<A-j> / <A-k> |
移动当前行或选中块 | Vim 原生通常没有这组通用编辑动作 |
gcc / gc{范围} |
切换行注释 / 范围注释 | 属于 Neovim/LazyVim 的注释工作流,可与动作范围组合 |
只在 LSP 附着时覆盖的 Vim 键
| 按键 | Vim 原生含义 | LSP 附着后的 LazyVim 行为 | 原生替代入口 |
|---|---|---|---|
K |
对光标词运行 keywordprg |
显示 LSP 悬浮文档 | Space K |
gd / gD |
查找局部 / 全局声明 | LSP 定义 / 声明 | 需要精确判断时用 :verbose nmap gd |
gr、gI、gy |
原生或默认映射可能因 Neovim 版本而异 | LSP 引用、实现、类型定义 | 这些键在代码缓冲区应按 LSP 语义理解 |
插入模式 <C-k> |
输入 digraph(二字符特殊字符) | LSP 函数签名帮助 | 可查看 :digraphs,或用其他 Unicode 输入方式 |
这类映射是缓冲区局部的:普通文本文件没有 LSP 时,不能据此判断某个键”坏了”。先用 :LspInfo / Space cl 看当前缓冲区是否有服务器附着。
文件、项目、检索:最值得肌肉记忆的一组
LazyVim 会以项目根目录(通常是含 .git 的目录)和当前工作目录两种范围工作。快捷键名称中的 Root Dir 是项目根目录,cwd 是当前目录;在子目录工作、或项目根识别不符合预期时,优先选 cwd 版本。
| 按键 | 做什么 |
|---|---|
Space ff |
在项目根目录找文件 |
Space fF |
在当前工作目录找文件 |
Space fg |
按 Git 已跟踪文件找文件(通常更干净) |
Space fr / Space fR |
最近文件(根目录范围 / cwd 范围) |
Space fp |
切换项目 |
Space fc |
找 LazyVim 配置文件 |
Space fn |
新建空文件 |
Space e 或 Space fe |
打开 Snacks Explorer(项目根目录) |
Space E 或 Space fE |
打开 Snacks Explorer(cwd) |
Space sg |
在项目根目录全文 Grep |
Space sG |
在 cwd 全文 Grep |
Space sw |
搜索光标下单词或可视选区(项目根) |
Space sW |
搜索光标下单词或可视选区(cwd) |
Space sb |
当前缓冲区内搜索行 |
Space sB |
在已打开缓冲区中搜索 |
Space sR |
恢复最近一次 Picker 搜索 |
Space sr |
多文件搜索与替换(Grug Far) |
Space / |
直接在项目根目录全文搜索 |
Space , |
快速选择缓冲区 |
Snacks Picker 小抄
以上大多数 f* / s* 会打开 Snacks Picker。输入后是模糊匹配:输入 abc 即可匹配中间有间隔的候选;大写会触发大小写敏感匹配。
| Picker 内按键 | 做什么 |
|---|---|
| 输入文字 | 过滤;在 Grep 中实时搜内容 |
<Down> / <Up> |
选择下一/上一条 |
<CR> |
打开当前项 |
<S-CR> |
选择窗口后跳转打开 |
<Tab> / <S-Tab> |
多选下一项/上一项 |
<Esc> 或 <C-c> |
取消并关闭 |
<C-d> |
结果列表下滚一屏 |
<C-b> / <C-f> |
预览上滚/下滚 |
<A-p> |
开关预览 |
<A-m> |
最大化/还原 Picker |
<A-h> / <A-i> |
显示/隐藏隐藏文件、忽略文件 |
<A-r> |
正则过滤开关 |
<A-w> |
在输入、结果、预览窗口间循环 |
/ |
在输入框与列表之间切换焦点 |
代码导航、LSP、诊断与格式化
LSP 映射仅在当前文件已有语言服务器附着时生效。工具实际是否已安装可在 :Mason 查看。
| 按键 | 做什么 |
|---|---|
gd |
跳到定义(definition) |
gD |
跳到声明(declaration) |
gr |
找引用(references) |
gI |
跳到实现(implementation) |
gy |
跳到类型定义 |
K |
悬浮说明(hover) |
gK |
函数签名帮助(有能力的 LSP 时) |
插入模式 <C-k> |
函数签名帮助(有能力的 LSP 时) |
Space ca |
代码操作:修复、导入、重构等 |
Space cr |
重命名符号 |
Space co |
整理 import(服务器提供时) |
Space cA |
Source 类代码操作 |
Space cl |
查看当前 LSP 配置/状态 |
Space cf |
格式化当前文件或可视选区 |
Space cF |
只格式化注入语言(如 Markdown 代码块) |
]d / [d |
下一/上一条诊断,并显示浮窗 |
]e / [e |
下一/上一条错误 |
]w / [w |
下一/上一条警告 |
Space cd |
显示光标所在位置诊断 |
Space xx / Space xX |
Trouble:全部诊断 / 当前缓冲区诊断 |
Space cs / Space cS |
Trouble 符号 / LSP 位置列表 |
Space sd / Space sD |
Picker:全部诊断 / 当前缓冲区诊断 |
Space uh |
开关 LSP Inlay Hints |
Space uf / Space uF |
全局/当前缓冲区自动格式化开关 |
补全使用 blink.cmp。插入模式中用 <C-n> / <C-p> 或方向键选择候选,<C-y> 接受当前候选(未选择时接受第一项),选中候选后也可按 <CR> 接受。<Tab> / <S-Tab> 主要在活动 snippet 中前进/后退,否则回退为原按键。
Git、Todo、通知与问题列表
| 按键 | 做什么 |
|---|---|
Space gg / Space gG |
在项目根 / cwd 打开 Lazygit(系统有 lazygit 时) |
Space gl / Space gL |
项目根 / cwd 的 Git 日志 |
Space gf |
当前文件 Git 历史 |
Space gb |
当前行 Blame/历史 |
Space gd |
Git diff hunk Picker |
Space gD |
与 origin 的 Git diff |
Space gs |
Git 状态 |
Space gS |
Git stash |
Space gB / Space gY |
浏览当前 Git URL / 将 URL 复制到剪贴板 |
]t / [t |
下一个/上一个 TODO、FIX、FIXME 注释 |
Space st / Space sT |
搜索 TODO / TODO、FIX、FIXME |
Space xt / Space xT |
Trouble 中显示 TODO / TODO、FIX、FIXME |
Space n |
通知历史 |
Space un |
清除所有通知 |
Space snh / Space snl |
Noice 历史 / 最后一条消息 |
Space sna |
Noice 全部消息 |
Space snd |
关闭 Noice 消息 |
Markdown、JSON 等常用文件类型的专用能力
| 场景 | 按键/命令 | 说明 |
|---|---|---|
| Markdown 浏览器预览 | Space cp |
切换 markdown-preview.nvim;仅 Markdown 缓冲区可用 |
| Markdown 渲染 | Space um |
开关 render-markdown.nvim 的编辑器内渲染 |
| Markdown 标题与代码块 | 打开 .md 文件 |
标题显示层级图标而非 #;代码围栏、表格等由 render-markdown 在编辑器内渲染 |
| Markdown 目录 | 在文件中放 <!-- toc --> 后 Space cf |
可使用 markdown-toc 自动更新目录 |
| Markdown 格式化 | Space cf |
可用的格式化工具取决于 Mason 中已安装的工具 |
| JSON 校验/补全 | 打开 JSON 后使用 gd、K、Space ca |
jsonls 会加载 SchemaStore schema;也可 Space cf 格式化 |
| 语言服务器安装 | :Mason 或 Space cm |
安装/更新 LSP、formatter、linter |
AI 辅助功能
LazyVim 提供了多个 AI 相关的 Extras,可根据需要启用:
| Extra | 功能 |
|---|---|
| Copilot | GitHub Copilot 代码补全,可与 blink.cmp 集成 |
| Claude Code | Anthropic Claude Code 集成 |
| Avante | 基于 AI 的对话式代码辅助 |
| Supermaven | 高速代码补全 |
启用 AI Extra 的方式:在 lazyvim.json 的 extras 数组中添加对应条目(如 "lazyvim.plugins.extras.ai.copilot"),重启 Neovim 后生效。
启用 Copilot 后,补全候选会与 LSP、路径、snippet、buffer 候选一起出现在 blink.cmp 菜单中。常用操作:
| 按键/命令 | 行为 | 备注 |
|---|---|---|
<C-Space> |
手动打开补全菜单或切换补全文档 | Copilot 候选与其他来源一起显示 |
<C-n> / <Down> |
选择下一个候选 | Copilot 项带 Copilot 图标 |
<C-p> / <Up> |
选择上一个候选 | 可在不同来源候选间移动 |
<C-y> |
选择并接受当前候选;未选择时接受第一项 | 最推荐的接受键 |
<CR> |
接受已经选中的候选,否则正常换行 | 避免误接受未选中的建议 |
<C-e> |
取消补全菜单 | 放弃当前建议 |
:Copilot status |
查看登录、授权和在线状态 | Free 月度额度应在 GitHub Copilot 账户页面查看 |
:Copilot auth |
重新进行 GitHub Copilot 登录授权 | 登录异常时使用 |
注意:不同 AI Extra 之间可能存在键位重叠。只启用实际需要的 Extra,并以 Space sk 和 :verbose nmap 确认运行时映射,而不是仅凭官方总表判断。
其他高价值菜单
| 前缀 | 典型用途 |
|---|---|
Space s |
搜索:命令 sC、帮助 sh、按键 sk、符号 ss、跳转 sj、寄存器 s"、标记 sm |
Space u |
UI 开关:拼写 us、换行 uw、相对行号 uL、行号 ul、诊断 ud、Treesitter uT、缩进线 ug、Git 标记 uG、缓冲区标签栏 uA、深色背景 ub |
Space x |
Trouble/quickfix:诊断 xx、快速修复 xq、位置列表 xl |
Space q |
会话:恢复 qs、选择 qS、恢复最近 ql、停止保存 qd |
Space <Tab> |
标签页管理 |
Space w |
窗口管理;也可按 <C-w><Space> 进入窗口 Hydra 菜单 |
Space t |
测试相关(需启用测试 Extra) |
Space l |
打开 lazy.nvim 插件管理界面 |
Space cm |
打开 Mason,安装/更新 LSP、formatter、linter |
Space L |
查看 LazyVim 更新日志 |
Space sk |
用 Picker 搜索所有快捷键;忘记键时优先用它 |
终端、会话、工具与界面
| 按键 | 做什么 |
|---|---|
Space ft / Space fT |
项目根 / cwd 的浮动终端 |
<C-/> |
聚焦或切换项目根浮动终端(普通、终端模式) |
Space . / Space S |
切换 / 选择 Scratch Buffer |
Space qs / Space qS / Space ql |
恢复当前会话 / 选择会话 / 恢复最近会话 |
Space uc |
开关 conceal(Markdown 链接等可能显示为简化形式) |
Space uA |
开关缓冲区标签栏 |
Space uD / Space ua / Space uS |
开关调暗、动画、平滑滚动 |
Space uC |
选择颜色主题 |
Space ui / Space uI |
检查光标位置语法信息 / Treesitter 语法树 |
Space K |
对光标词运行 keywordprg;可作为查询帮助入口 |
最小实战流程:打开一个代码项目后怎么做
- 在项目目录执行
nvim .,或先用Space fp选项目。 Space ff找文件;不知道文件名时直接Space sg搜内容。- 在符号上按
gd看定义、K看说明、gr看调用处。 - 发现问题时按
]d在诊断之间跳转;需要集中处理就用Space xx。 - 修改后
Space ca看可自动修复项,Space cf格式化,<C-s>保存。 Space gs看改动,Space gf追文件历史;需完整 Git 交互再用Space gg。- 临时运行命令按
Space ft,而不是离开编辑器开另一个终端。
遇到”按键没反应”时的检查顺序
- 确认处于普通模式:先按
<Esc>。 - 按
Space看 which-key 是否显示该前缀;或Space sk搜按键描述。 - LSP、Markdown 预览、AI 等按键有文件类型、服务、登录或插件加载条件,检查状态栏和
:Lazy/:Mason。 - 对普通映射执行
:verbose nmap <按键>,例如:verbose nmap s,可看到最后是谁定义了映射。blink.cmp 会在内部处理部分插入模式按键,因此:verbose imap <C-y>显示为空不代表<C-y>无效。 - 用
:checkhealth做总检查;只检查 LazyVim 可用:checkhealth lazyvim。 - 不要在不了解影响时直接覆盖
<C-y>、<Tab>、<CR>、<C-n>、<C-p>等按键,它们会影响整个补全菜单。
权威资料与继续学习
- LazyVim 快捷键总表:官方默认映射的完整索引。
- LazyVim 配置说明:理解
lua/config、lua/plugins与 Extra 的加载方式。 - LazyVim Extras 列表:浏览所有可用的语言和工具 Extra。
- Neovim 用户手册第 2 章:Vim 模式、移动、编辑的官方入门;编辑器内直接运行
:Tutor更适合练习。 - Neovim 用户手册第 4 章:操作符、移动、文本对象、复制粘贴等 Vim 基础的官方说明。
- which-key.nvim:理解为什么按前缀会出现提示菜单。
- Snacks Picker 文档:深入 Picker 的多选、预览、过滤和布局。
配置或插件升级后,按键可能变化。最可靠的即时查询仍是:Space、Space ?、Space sk 和 :verbose {n,i,x}map。