# Neovim 配置使用手册 > **Leader 键 = `Space`(空格)** > 任何时候按住 `Space` 稍等,**which-key** 会弹出所有可用提示菜单。 --- ## 🚀 第一次启动 1. 打开 Neovim:`nvim` 2. lazy.nvim 自动安装所有插件(等待完成) 3. 重启 nvim,再运行 `:Lazy sync` 4. `:Mason` 查看工具安装状态 5. `:checkhealth` 检查环境健康 --- ## 📁 文件树(neo-tree) | 快捷键 | 功能 | |--------|------| | `e` | **打开/关闭文件树** | | `o` | 聚焦到文件树 | | `ge` | 浮动显示 Git 状态树 | **文件树内操作:** | 按键 | 功能 | |------|------| | `Enter` / `l` | 打开文件/展开目录 | | `h` | 折叠目录 | | `a` | 新建文件(末尾加 `/` 则创建目录) | | `d` | 删除 | | `r` | 重命名 | | `y` | 复制 | | `x` | 剪切 | | `p` | 粘贴 | | `q` | 关闭文件树 | --- ## 🔍 查找 / 搜索 | 快捷键 | 功能 | |--------|------| | `ff` | **查找文件** | | `fr` | 最近打开的文件 | | `fb` | 已打开的缓冲区 | | `fg` | **全局内容搜索(grep)** | | `fw` | 搜索光标下的单词 | | `fh` | 搜索帮助文档 | | `fk` | 查看所有快捷键 | | `fs` | 当前文件符号 | | `fS` | 工作区符号 | | `fd` | 诊断错误 | | `ft` | TODO 注释 | | `sr` | **项目范围搜索替换**(grug-far) | --- ## 💡 LSP 代码智能 | 快捷键 | 功能 | |--------|------| | `gd` | **跳转到定义** | | `gD` | 跳转到声明 | | `gr` | 查看所有引用 | | `gI` | 跳转到实现 | | `gy` | 跳转到类型定义 | | `K` | **悬浮显示文档** | | `gK` | 函数签名帮助 | | `` | 签名帮助(插入模式) | | `ca` | **代码操作**(自动修复、重构) | | `cr` | **重命名符号**(实时预览) | | `cd` | 显示当前行诊断详情 | | `cl` | LSP 状态信息 | | `cf` | **格式化**(文件或选中范围) | | `uf` | 切换当前缓冲区自动格式化 | | `uF` | 切换全局自动格式化 | | `uh` | 切换 Inlay Hints | | `]d` / `[d` | 跳到下/上一个诊断 | --- ## 🔴 诊断列表(Trouble) | 快捷键 | 功能 | |--------|------| | `xx` | 工作区所有诊断 | | `xX` | 当前文件诊断 | | `xs` | 符号列表 | | `xL` | 位置列表 | | `xQ` | Quickfix 列表 | | `]q` / `[q` | 在 Trouble 列表内跳转 | --- ## ✍️ 文本编辑增强 ### 包围操作(mini.surround,前缀 `gs`) | 快捷键 | 功能 | 示例 | |--------|------|------| | `gsa` | 添加包围 | `gsaiw"` = 用 `"` 包围单词 | | `gsd` | 删除包围 | `gsd"` = 删除 `"` | | `gsr` | 替换包围 | `gsr"'` = `"` 替换为 `'` | | `gsf` | 向前查找包围 | | | `gsh` | 高亮包围 | | ### 文本对象(mini.ai,在 d/c/y/v 后使用) > `a` = around(含包围符号),`i` = inner(仅内容) | 对象 | 说明 | |------|------| | `af` / `if` | 函数 | | `ac` / `ic` | 类 | | `aa` / `ia` | 参数 | | `ab` / `ib` | 代码块 | | `ae` / `ie` | 整个文件 | | `aq` / `iq` | 引号 | | `at` / `it` | HTML/JSX 标签 | 示例:`daf` 删除整个函数,`vif` 选中函数体,`caa` 修改整个参数 ### 注释(`gc` 系列) | 快捷键 | 功能 | |--------|------| | `gcc` | 行注释切换 | | `gbc` | 块注释切换 | | `gc{motion}` | 注释 motion 范围 | | `gcO` / `gco` | 在上/下方插入注释 | ### 多光标(vim-visual-multi) | 快捷键 | 功能 | |--------|------| | `` | 选中光标下的词(重复按继续选下一个) | | `` | 向下/上添加光标 | | `q` | 跳过当前,选下一个 | | `` | 退出多光标 | --- ## 🐛 调试(DAP) | 快捷键 | 功能 | |--------|------| | `dc` | **开始/继续调试** | | `db` | 切换断点 | | `dB` | 条件断点 | | `di` | 单步进入 | | `do` | 单步跳出 | | `dO` | 单步跳过 | | `dC` | 运行到光标处 | | `dt` | 终止调试 | | `du` | 调试 UI 面板 | | `dw` | 悬浮查看变量值 | | `dr` | 打开 REPL | | `dl` | 重新运行上次调试 | --- ## 🐹 Go 开发 | 快捷键 | 功能 | |--------|------| | `gr` | 运行 | | `gb` | 构建 | | `gv` | go vet | | `gi` | 实现接口 | | `gge` | 生成 if err 错误处理 | | `ggf` | 填充结构体字段 | | `ggs` | 填充 switch case | | `gts` | 切换测试/实现文件 | | `gtt` | 运行测试 | | `gtf` | 测试当前函数 | | `gtc` | 查看测试覆盖率 | | `gta` | 添加 struct tag | | `dtg` | 调试当前 Go 测试 | --- ## 🦀 Rust 开发 | 快捷键 | 功能 | |--------|------| | `rr` | 运行目标列表 | | `rt` | 测试目标列表 | | `rd` | 调试目标列表 | | `re` | 解释错误 | | `rm` | 展开宏 | | `rc` | 打开 Cargo.toml | | `rp` | 跳转到父模块 | | `rx` | 打开外部文档 | | `rcu` | 升级所有 crate 依赖 | | `rco` | 查看 crate 信息 | --- ## 🐍 Python 开发 | 快捷键 | 功能 | |--------|------| | `pt` | 运行测试 | | `pT` | 运行当前文件全部测试 | | `pd` | DAP 调试测试 | | `ps` | 停止测试 | | `po` | 查看测试输出 | | `pO` | 测试输出面板 | | `pS` | 测试摘要面板 | | `dpm` | 调试当前方法 | | `dpc` | 调试当前类 | --- ## 📘 TypeScript/JavaScript 开发 | 快捷键 | 功能 | |--------|------| | `to` | 整理 import | | `ta` | 添加缺失 import | | `tu` | 删除未使用 import | | `tf` | 修复所有问题 | | `tr` | 重命名文件(自动更新引用) | | `tR` | 查看文件引用 | --- ## 🌿 Git 操作 | 快捷键 | 功能 | |--------|------| | `gg` | **打开 LazyGit** | | `gl` | Git 日志 | | `gf` | 当前文件 Git 历史 | | `gs` | 暂存当前 hunk | | `gr` | 重置当前 hunk | | `gS` | 暂存整个文件 | | `gR` | 重置整个文件 | | `gu` | 取消暂存 hunk | | `gp` | 预览变更 hunk | | `gb` | 查看当前行 blame | | `gB` | 开关行 blame 显示 | | `gd` | 文件 diff | | `]h` / `[h` | 跳到下/上一个 hunk | | `ih` | 选中 hunk(Visual/Operator 模式) | --- ## 🖥️ 终端 | 快捷键 | 功能 | |--------|------| | `` | 切换终端(浮动) | | `tf` | 浮动终端 | | `th` | 水平终端 | | `tv` | 垂直终端 | | `Esc` 或 `jk` | 退出终端模式 | --- ## ⚡ 快速跳转(Flash) | 快捷键 | 功能 | |--------|------| | `s` | 字符跳转(高亮标记) | | `S` | Treesitter 节点跳转 | | `f/F/t/T` | 行内增强跳转 | | `r` (operator) | Flash 远程操作 | --- ## 📑 缓冲区管理 | 快捷键 | 功能 | |--------|------| | `` | 上一个缓冲区 | | `` | 下一个缓冲区 | | `bd` | 关闭当前缓冲区 | | `bD` | 强制关闭 | | `bo` | 关闭其他缓冲区 | | `bp` | 标记/取消固定缓冲区 | | `br` / `bl` | 关闭右/左侧缓冲区 | --- ## 🪟 窗口管理 | 快捷键 | 功能 | |--------|------| | `` | 切换窗口 | | `sv` | 垂直分割 | | `sh` | 水平分割 | | `se` | 均分窗口 | | `sx` | 关闭当前窗口 | | `` | 调整窗口大小 | --- ## 🔢 代码折叠(UFO) | 快捷键 | 功能 | |--------|------| | `zR` | 展开所有折叠 | | `zM` | 折叠所有 | | `zr` | 展开一级 | | `zm` | 折叠一级 | | `zp` | 预览折叠内容 | --- ## 🗂️ 会话管理 | 快捷键 | 功能 | |--------|------| | `qs` | 恢复上次会话 | | `ql` | 恢复最后会话 | | `qd` | 退出不保存会话 | --- ## 🔔 通知 | 快捷键 | 功能 | |--------|------| | `nh` | 通知历史 | | `nd` | 关闭所有通知 | | `snl` | 最后一条消息 | | `snh` | Noice 历史 | --- ## ⚙️ 通用编辑技巧 | 快捷键 | 功能 | |--------|------| | `w` | 保存文件 | | `q` | 退出 | | `Q` | 退出全部 | | `h` | 清除搜索高亮 | | `r` | 替换光标下单词(全文) | | `jk` | Insert 模式退出 | | `` | 翻页并保持光标居中 | | `n/N` | 搜索跳转并居中 | | `J/K` (Visual) | 上下移动选中文本 | | `>/<` (Visual) | 缩进并保持选中 | | `p` (Visual) | 粘贴不覆盖寄存器 | | `]]` / `[[` | 跳到下/上一个同名引用 | | `]w` / `[w` | 跳到下/上一个引用词 | | `]t` / `[t` | 跳到下/上一个 TODO | --- ## 🛠️ 常用命令 ``` :Lazy 插件管理(S=同步更新,U=更新全部) :Mason LSP/工具管理 :LspInfo 当前 LSP 状态 :ConformInfo 格式化工具状态 :checkhealth 环境健康检查 :TSInstall 安装 Treesitter 语法 :noa w 保存(跳过格式化) ```