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)