使用 lazy.nvim 管理插件
- Neovim >= 0.9.0
- Git
- Nerd Font字体 (可选)
- C编译工具 (用于编译nvim-treesitter)
- fd (文件查找)
- ripgrep (模糊搜索)
- lazygit (git管理)
使用 powershell 安装
git clone https://github.com/follow1123/nvim $ENV:LOCALAPPDATA\nvim
git clone https://github.com/follow1123/nvim ~/.config/nvim
以下快捷键都是新增或修改的,不包含默认的快捷键
- Leader 键为 Space
- 禁用 Ctrl+b 和 Ctrl+f 使用 Ctrl+d 和 Ctrl+u 代替
模式 | 按键 | 说明 |
---|---|---|
Normal |
Ctrl+h | 光标移动到左边的窗口 |
Normal |
Ctrl+j | 光标移动到下边的窗口 |
Normal |
Ctrl+l | 光标移动到右边的窗口 |
Normal |
Ctrl+k | 光标移动到上边的窗口 |
Normal |
Ctrl+left | 减少垂直窗口大小 |
Normal |
Ctrl+right | 增加垂直窗口大小 |
Normal |
Ctrl+up | 减少水平窗口大小 |
Normal |
Ctrl+down | 增加水平窗口大小 |
Normal |
Alt+q | 退出窗口 |
模式 | 按键 | 说明 |
---|---|---|
Normal |
Alt+n | 切换到下一个buffer |
Normal |
Alt+p | 切换到上一个buffer |
Normal |
Alt+` | 来回切换两个buffer |
Normal |
Leader+b+f | 列出所有的buffer |
模式 | 按键 | 说明 |
---|---|---|
Normal |
Alt+e | 单行注释 |
Visual |
Alt+e | 多行注释 |
只有 quickfix list 窗口打开的情况下这两个按键才有效
模式 | 按键 | 说明 |
---|---|---|
Normal |
Ctrl+n | 下一个 quickfix item |
Normal |
Ctrl+p | 上一个 quickfix item |
- 使用 telescope.nvim 插件实现
模式 | 按键 | 说明 |
---|---|---|
Normal |
Leader+h+f | 搜索通用帮助信息 |
Normal |
Leader+h+k | 显示所有按键信息 |
Normal |
Leader+h+r | 显示所有registers信息 |
Normal |
Leader+h+h | 显示所有highlights信息 |
扩展内置插件 netrw 让这个插件好用一点
- 打开 netrw 窗口时自动定位文件
- netrw 窗口自动定位打开的文件
模式 | 作用域(文件类型) | 按键 | 说明 |
---|---|---|---|
Normal |
* |
Alt+1 | 开关或关闭目录树 |
Normal |
netrw |
g+w | netrw 窗口定位到当前共做目录 |
Normal |
netrw |
y+p | 复制当前文件的相对路径 |
Normal |
netrw |
y+P | 复制当前文件的绝对路径 |
Normal |
netrw |
Alt+f | netrw 窗口内可以搜索文件或目录 |
- 使用 telescope.nvim 插件实现
模式 | 按键 | 说明 |
---|---|---|
Normal |
Alt+f | 搜索当前项目内的文件 |
Normal |
Leader+f+f | 在当前项目内搜索 |
Normal |
Leader+f+w | 在当前项目内搜索当前光标下的单词 |
- 使用 gitsigns.nvim 插件实现
模式 | 按键 | 说明 |
---|---|---|
Normal |
]+c | 下一处变更 |
Normal |
[+c | 上一处变更 |
Normal |
Leader+g+r | 重置光标所在位置的变更 |
Normal |
Leader+g+R | 重置当前 buffer 内的所有变更 |
Normal |
Leader+g+s | 显示当前项目的git status信息 |
Visual |
Leader+g+r | 重置选中的所有变更 |
Normal |
Leader+g+p | 弹出光标所在位置的变更的diff窗口 |
Normal |
Leader+g+b | 弹出光标所在位置的变更的blame窗口 |
Normal |
Leader+g+d | diff 当前 buffer |
相关插件:
- nvim-lspconfig - lsp 配置管理
- mason.nvim - lsp 包管理器
- mason-lspconfig.nvim - lsp 配置和包管理器整合
- lazydev.nvim - neovim 开发提示
模式 | 按键 | 说明 |
---|---|---|
Normal |
Leader+l+d | 显示当前buffer的所有的诊断信息 |
Normal |
Leader+l+D | 显示当前项目的所有的诊断信息 |
Normal |
Leader+l+s | 显示当前buffer的所有的符号信息 |
Normal |
Leader+l+S | 显示当前项目的所有的符号信息 |
Normal |
Leader+l+r | 重命名光标下的符号 |
Normal |
Leader+l+p | 弹窗显示当前光标下的诊断信息 |
Normal |
Leader+c+a | 显示code action |
Normal |
Leader+c+f | 格式化代码 |
Normal |
g+i | 跳转到实现 |
Normal |
g+d | 跳转到定义 |
Normal |
g+t | 跳转到类型定义 |
Normal |
g+D | 跳转到声明 |
Normal |
g+r | 跳转到引用 |
Normal |
[+d | 上一处代码诊断 |
Normal |
]+d | 下一处代码诊断 |
Normal |
Shift+k | 显示当前光标下符号的文档 |
Normal |
Alt+Enter | 显示code action |
Normal |
F2 | 重命名光标下的符号 |
相关插件:
- nvim-cmp - neovim 补全框架
- LuaSnip - 使用 lua 编写的代码片段引擎
- cmp_luasnip - 补全框架的代码片段源,整合 LuaSnip
- cmp-nvim-lsp - 补全框架的 lsp 语法补全源
- cmp-nvim-lsp-signature-help - 补全框架的 lsp 方法参数补全源
- friendly-snippets - 一堆代码片段
模式 | 按键 | 说明 |
---|---|---|
Insert |
Ctrl+n | 下一个补全 |
Insert |
Ctrl+p | 上一个补全 |
Insert |
Ctrl+k | 开始补全 |
Insert |
Ctrl+u | 文档弹窗内容向上滚动 |
Insert |
Ctrl+d | 文档弹窗内容向下滚动 |
Insert |
Enter | 完成补全 |
Insert |
Ctrl+k | 显示补全弹窗或开关文档弹窗 |
Insert Select |
Ctrl+c | 打断补全或代码片段 |
Insert Select |
Tab | 选择补全或代码片段的下一处 |
Insert Select |
Shift+Tab | 代码片段的上一处 |
基于自带的 session 功能开发的扩展
项目管理窗口的文件类型是 projectmgr
添加或删除项目的方式就像 Harpoon 或 oil.nvim 一样,直接操作 buffer 里面的路径即可
模式 | 作用域(文件类型) | 按键 | 说明 |
---|---|---|---|
Normal |
* |
Leader+p+f | 打开或关闭项目管理窗口 |
Normal |
* |
Leader+p+r | 恢复最近一个打开的项目的 session |
Normal |
* |
Leader+p+s | 保存当前项目的 session |
Normal |
* |
Leader+p+a | 将当前项目添加进管理列表 |
Normal |
projectmgr |
Enter | 打开选中的项目 |
Normal |
projectmgr |
q/Alt+q/Esc | 退出项目管理窗口 |
Normal |
projectmgr |
K | 显示项目完整路径 |
管理主要编辑的文件,防止多次 Ctrl+i,Ctrl+o 后找不到文件在哪里
模式 | 按键 | 说明 |
---|---|---|
Normal |
Leader+f+a | 添加当前文件到harpoon list |
Normal |
Leader+f+l | 弹窗显示harpoon list |
Normal |
Alt+j | 打开harpoon list内的第1个文件 |
Normal |
Alt+k | 打开harpoon list内的第2个文件 |
Normal |
Alt+l | 打开harpoon list内的第3个文件 |
Normal |
Alt+; | 打开harpoon list内的第4个文件 |
基于内置的终端实现
- lazygit terminal - 封装 lazygit
- scratch terminal - 草稿终端
- task manager - 管理一堆终端,参考 vs code
模式 | 按键 | 说明 |
---|---|---|
Normal Terminal |
Ctrl+\ | 打开或关闭草稿终端 |
Normal Terminal |
Alt+6 | 打开或关闭lazygit终端 |
Normal Terminal |
Alt+4 | 打开或关闭 task manager |
Terminal |
Ctrl+n | 下一个 task terminal |
Terminal |
Ctrl+p | 上一个 task terminal |
Terminal |
Ctrl+t+n | 新打开一个 task terminal |
Terminal |
Ctrl+t+Ctrl+n | 新打开一个 task terminal |
Terminal |
Alt+x+n | 新打开一个 task terminal(仅在GUI下生效) |
- markdown-preview.nvim - markdown 文件预览
- nvim-colorizer.lua - 颜色预览
- nvim-treesitter - 代码语法解析,一般用于代码高亮等
- plenary.nvim - 依赖插件,telescope 和 Harpoon 插件的依赖库
- catppuccin - 主题插件
模式 | 按键 | 说明 |
---|---|---|
Normal |
Leader+m+p | 开关markdown文件预览 |