- 如何使用
- 配置结构
- lua/profile.lua 通用基础配置说明
- lua/keymap.lua 快捷键相关配置说明
- lua/packinit.lua 插件相关的配置说明
- 插件说明以及键位绑定
- Support: buy me a coffee
如何使用
-
将项目clone至 ~/.config/nvim 目录中(注意备份好自己的配置)
cd ~/.config git clone https://github.com/yaocccc/nvim
-
启动vim 等待自动安装packer(包管理工具、如果你没有安装的话) 会自动安装所有插件
-
每次修改过lua/packinit.lua 请重启后PackerSync
配置结构
.
├─ lua/ -- LUA配置目录
│ ├─ pack/ -- 各插件的配置目录
│ ├─ G.lua -- G: Global 封装了lua配置内用到的部分通用方法
│ ├─ profile.lua -- 环境变量(各种set)
│ ├─ keymap.lua -- 快捷键配置
│ ├─ packinit.lua -- 插件配置入口
│ └─ autocmd.lua -- 自动命令
├─ colors/ -- 样式相关(theme)
├─ snippets/ -- 代码片段
├─ init.lua -- 配置入口
├─ coc-settings.json -- coc配置
└─ README.md -- README
lua/profile.lua 通用基础配置说明
不额外说明了,有需要直接看 lua/profile.lua 的注释
lua/keymap.lua 快捷键相关配置说明
模式 | 键 | 说明 |
---|---|---|
normal | ; | : |
normal | + | 数字自增 |
normal | _ | 数字自减 |
normal | , | 重复上一次宏操作 |
normal | ctrl + j | 从, 处打断当前行 |
normal | \ | 清除当前搜索词高亮 |
normal | \w | 开启/关闭wrap显示 |
normal | backspace | 删除当前词并插入 |
insert | ctrl + h(backspace) | 删除内容置词首 |
insert | ctrl + z | 撤销最后修改并退出编辑 |
command | ctrl + a | Home |
command | ctrl + e | End |
all | ctrl + s | 进入替换模式 |
normal | S | save |
normal | W | close |
normal | Q | quit |
normal | R | 重载配置 |
normal | >> | 将代码块右移 |
normal | << | 将代码块左移 |
visual | > or tab | 将代码块右移 |
visual | < or shift + tab | 将代码块左移 |
all | shift + 方向 | 选中文本(类似于在其他编辑器的体验) |
all | ctrl + shift + 方向 | 快速移动 |
all | ctrl + u | 清空本行 |
all | alt + up/down | 上下移动当前行/块 |
all | alt + o | 下方新起一行 |
all | alt + O | 上方新起一行 |
normal | sv | 左右分屏 |
normal | sp | 上下分屏 |
normal | sc | 关闭当前窗口 |
normal | so | 关闭其他所有窗口 |
normal | s + 方向 | 聚焦到对应窗口 |
normal | ctrl + space | 切换窗口 |
normal | s= | 将窗口大小置为相同 |
normal | s, | 窗口减小 |
normal | s. | 窗口增大 |
normal | ss | 切换到下个buffer |
all | alt + left or right | 左右跳转buffer |
all | F5 | 一键运行当前文件 |
normal | -- | 折叠/反折叠 |
visual | - | 折叠选中内容 |
normal | space | 在行首 第一个非空字符 行尾 跳转 |
visual | = | 格式化选中内容 |
visual | t | 驼峰和下划线转换 |
PS: 如果需要格式化js和ts代码,请手动安装: npm i js-beautify -g
lua/packinit.lua 插件相关的配置说明
插件说明以及键位绑定
terryma/vim-expand-region -- 快速选中文本
github: terryma/vim-expand-region
模式 | 键 | 说明 |
---|---|---|
visual | v | 扩大选中范围 |
visual | V | 缩小选中范围 |
lfv89/vim-interestingwords -- 高亮关键词
github: lfv89/vim-interestingwords
模式 | 键 | 说明 |
---|---|---|
normal | ff | 高亮/取消高亮 当前词 |
normal | FF | 取消高亮 全部词 |
mg979/vim-visual-multi -- 虚拟多光标
gihub: mg979/vim-visual-multi
bilibili视频介绍: BV1uF411c7Ro
建议到对应的仓库仔细看文档
模式 | 键 | 说明 |
---|---|---|
normal | ctrl + up/down | 上下添加虚拟光标(normal模式) |
normal | ctrl + left/right | 虚拟光标左右扩选(visual模式) |
normal | ctrl + d | 所有当前词 添加虚拟光标(visual模式) |
normal | ctrl + x | 当前字符添加虚拟光标(normal模式) |
normal | ctrl + w | 添加当前词首(normal模式) |
all | ctrl + n/p | 添加下/上一个当前词到虚拟光标 |
all | q | 移除当前光标位置下的虚拟光标 |
normal | tab | 切换到visual模式 |
visual | tab | 切换到normal模式 |
iamcco/markdown-preview.nvim -- md 预览插件
github: iamcco/markdown-preview.nvim
guide: 如果无法使用 请
- 修改 lua/pack/markdown.lua 中的 G.g.mkdp_browser 去掉或者修改成自己使用的浏览器
- cd ~/.local/share/nvim/site/pack/packer/opt/markdown-preview.nvim/app && yarn
模式 | 键 | 说明 |
---|---|---|
normal | F5 | 在浏览器预览markdown |
voldikss/vim-floaterm -- 悬浮终端插件
模式 | 键 | 说明 |
---|---|---|
normal | ctrl + t | 打开浮动终端 |
normal | ctrl + b | 打开数据库可视化工具(dadbod) |
normal | F5 | 根据文件类型启动浮动终端执行当前文件 |
tpope/vim-dadbod -- 数据库可视化工具
github: tpope/vim-dadbod
github: kristijanhusak/vim-dadbod-ui
:DBUI 来使用 数据库可视化工具
添加链接: let g:dbs = [{ 'name': 'connection_name', 'url': 'mysql://user:password@host:port' }]
注意 url内的东西需要url_encode
也可直接 :CALLDB 呼出界面按界面引导 添加链接 链接格式同上
junegunn/fzf.vim -- 文本/文件搜索
注意要配合rg使用,请自己手动安装: ripgrep fd bat
模式 | 键 | 说明 |
---|---|---|
normal | ctrl + a | Rg搜索(全局文本搜索) |
normal | ctrl + l | 当前buffer文本搜索 |
normal | ctrl + p | 全局文件搜索 |
normal | ctrl + g | git变更文件搜索 |
normal | ctrl + h | 历史文件搜索 |
fzf中 | ctrl + / | 启动/关闭 预览 |
fzf中 | ctrl + n | 下一个搜索历史 |
fzf中 | ctrl + p | 上一个搜索历史 |
gelguy/wilder.nvim -- 弹出式的命令行
kyazdani42/nvim-tree.lua -- 文件管理器
github: kyazdani42/nvim-tree.lua
模式 | 键 | 说明 |
---|---|---|
normal | T | 打开/关闭 nvim-tree |
nvim-tree内 | a/A | 新建文件或文件夹 |
nvim-tree内 | r | 重命名 |
nvim-tree内 | W | 关闭所有打开的目录 |
nvim-tree内 | 关闭当前目录 | |
nvim-tree内 | 回退到上级目录 | |
nvim-tree内 | P | cd到选中目录 |
nvim-tree内 | H | 显示/隐藏 .文件 |
nvim-tree内 | I | 显示/隐藏 忽略文件(gitignore等) |
nvim-tree内 | d | 删除文件/文件夹 |
nvim-tree内 | x | 剪切文件/文件夹到剪切板 |
nvim-tree内 | c | 复制文件/文件夹到剪切板 |
nvim-tree内 | p | 从剪切板粘贴 |
nvim-tree内 | y | 复制文件名 |
nvim-tree内 | ? | 查看帮助 |
nvim-tree内 | go | 若当前查看的文件为外部文件 cd到目录 |
nvim-treesitter/nvim-treesitter -- 文本分析插件
github: nvim-treesitter/nvim-treesitter
没啥好说明的 用就完了
可以用 H 快捷键看高亮组 然后到 lua/pack/tree-sitter.lua 中修改对应的样式
R刷新高亮
neoclide/coc.nvim -- coc
建议到对应的仓库看一下
全局的插件列表 lua/pack/coc.lua -- G.g.coc_global_extensions = {...} 按需添加
模式 | 键 | 说明 | 对应的coc插件 |
---|---|---|---|
normal | gd | 跳转到定义 | coc |
normal | gy | 跳转到类型 | coc |
normal | gr | 跳转到实现 | coc |
normal | K | 查看文档 | coc |
normal | c-e | 查看诊断列表 | coc |
normal | F2 | 重命名 | coc |
normal | F4 | 关闭/开启coc | coc |
normal | c-e | 查看诊断列表 | coc |
normal | mm | 翻译当前词 | coc-translator |
normal | F9 | 编辑当前文件类型的snippet | coc-snippets |
normal | ( | 上一处修改 | coc-git |
normal | ) | 下一处修改 | coc-git |
normal | C | 显示当前行提交记录 | coc-git |
normal | \g | 开启/关闭 git blame 显示 | coc-git |
visual | if | 选中func内 | coc |
visual | af | 选中func | coc |
visual | ic | 选中class内 | coc |
visual | ac | 选中class | coc |
github/copilot.vim -- github copilot
模式 | 键 | 说明 |
---|---|---|
insert | right | 接受建议 |
insert | ctrl + ] | 取消建议 |
insert | alt + [或] | 上/下个建议 |
yaocccc/nvim-hl-mdcodeblock.lua -- 高亮markdown中的代码块
github: yaocccc/nvim-hl-mdcodeblock.lua
没啥好说明的 用就完了
yaocccc/vim-surround -- 快速操作({["'`等的
选中文本后 再使用 " ' { ( 等 可以将文本包裹起来
ds": 删除包裹的"" 其他的相同
ys": 用""将当前词包裹起来
cs"{: 用{}替换掉""
yaocccc/vim-comment -- 快速注释
普通模式 ??: 行注释当前行 选中文本后 /: 行注释选中内容 选中文本后 ?: 块注释选中内容
以上操作 可以用相同的操作逆转 (??行注释 ??取消行注释)
yaocccc/vim-fcitx2en -- 退出insert模式时 自动切换到英文
yaocccc/vim-echo -- 根据文件名或文件类型快速echo、print、console.log
选中文本后 C: 再下一行添加 console.log(选中的内容) 或 echo $选中的内容 等等等
yaocccc/nvim-foldsign -- 在signcolumn显示折叠信息
在signcolumn显示折叠信息 如果你使用折叠的话