Neovim 中最常见、最实用的操作, 主要针对C++ 开发需求:
🚀 基础操作
| 操作 | 快捷键 | 说明 |
|---|
| 保存 | :w 或 ZZ | 保存当前文件 |
| 退出 | :q 或 ZQ | 退出当前窗口 |
| 保存并退出 | :wq 或 ZZ | 保存并退出 |
| 强制退出 | :q! | 不保存直接退出 |
| 撤销 | u | 撤销上一步 |
| 重做 | <C-r> | 重做撤销 |
| 搜索 | /xxx | 向下搜索 xxx |
| 搜索下一个 | n | 向后查找下一个匹配 |
| 替换 | :%s/foo/bar/g | 全文替换 foo 为 bar |
🗂️ 窗口 & buffer 操作
| 操作 | 快捷键 | 说明 |
|---|
| 水平分屏 | :split 或 :sp | |
| 垂直分屏 | :vsplit 或 :vsp | |
| 切换窗口 | <C-w>h/j/k/l | 切换到上下左右窗口 |
| 新 buffer | :e 文件名 | |
| 切换 buffer | :bnext, :bprev | |
| 关闭 buffer | :bd | |
🧭 项目管理(使用插件如 telescope, nvim-tree)
| 功能 | 快捷键(建议) | 插件 |
|---|
| 打开文件树 | <leader>e | nvim-tree |
| 文件模糊搜索 | <leader>ff | telescope |
| 查找函数/变量 | <leader>fs | telescope |
| 列出打开的 buffer | <leader>fb | telescope |
| 打开大纲视图 | <leader>o | symbols-outline.nvim 或 aerial.nvim |
🧠 LSP 功能(代码跳转、诊断)
(这些依赖你已经安装 LSP,比如 clangd)
| 操作 | 快捷键(常见) | 插件 |
|---|
| 跳转定义 | gd | 内置 LSP |
| 跳转声明 | gD | |
| 跳转实现 | gi | |
| 查找引用 | gr | |
| 弹出文档 | K | |
| 格式化代码 | <leader>f | null-ls, clang-format |
| 显示诊断信息 | <leader>e | |
| 代码重命名 | <leader>rn | |
| 代码操作(修复) | <leader>ca | |
🐞 调试(DAP)
你已安装 nvim-dap + nvim-dap-ui,推荐快捷键如下:
| 功能 | 快捷键 |
|---|
| 启动调试 | <F5> |
| 断点切换 | <F9> |
| 单步跳过 | <F10> |
| 单步进入 | <F11> |
| 单步跳出 | <F12> |
| 重启调试 | <leader>dr |
| 停止调试 | <leader>dq |
✍️ 插入模式快捷操作
| 快捷键 | 功能 |
|---|
<C-a> | 光标移动到行首 |
<C-e> | 光标移动到行尾 |
<C-h> | 删除光标前字符 |
<C-w> | 删除前一个单词 |
<C-u> | 删除光标到行首 |
📦 插件操作(Lazy.nvim)
| 操作 | 命令 |
|---|
| 打开插件管理界面 | :Lazy |
| 安装插件 | :Lazy install |
| 更新插件 | :Lazy update |
| 同步插件 | :Lazy sync |
| 检查插件状态 | :Lazy health |
✅ 建议设置的一些常用快捷键
vim.keymap.set("n", "<C-s>", ":w<CR>")
vim.keymap.set("n", "<leader>e", ":NvimTreeToggle<CR>")
vim.keymap.set("n", "<leader>ff", ":Telescope find_files<CR>")
vim.keymap.set("n", "<leader>fg", ":Telescope live_grep<CR>")
vim.keymap.set("n", "<F5>", function() require("dap").continue() end)
vim.keymap.set("n", "<F9>", function() require("dap").toggle_breakpoint() end)