# nvim-yaocccc
**Repository Path**: david2022bao/nvim
## Basic Information
- **Project Name**: nvim-yaocccc
- **Description**: nvim-yaocccc的配置文件
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-05-06
- **Last Updated**: 2024-11-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

---
* [如何使用](#如何使用)
* [配置结构](#配置结构)
* [lua/profile.lua 通用基础配置说明](#luaprofilelua-通用基础配置说明)
* [lua/keymap.lua 快捷键相关配置说明](#luakeymaplua-快捷键相关配置说明)
* [lua/packinit.lua 插件相关的配置说明](#luapackinitlua-插件相关的配置说明)
* [插件说明以及键位绑定](#插件说明以及键位绑定)
* [Support: buy me a coffee](#support-buy-me-a-coffee)
## 如何使用
1. 将项目clone至 ~/.config/nvim 目录中(注意备份好自己的配置)
```plaintext
cd ~/.config
git clone https://github.com/yaocccc/nvim
```
2. 启动vim 等待自动安装packer(包管理工具、如果你没有安装的话) 会自动安装所有插件
3. 每次修改过lua/packinit.lua 请重启后PackerSync
## 配置结构
```dir
.
├─ 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 插件相关的配置说明
## 插件说明以及键位绑定
dstein64/vim-startuptime -- 启动时间分析
[github: dstein64/vim-startuptime](https://github.com/dstein64/vim-startuptime)
:StartupTime
terryma/vim-expand-region -- 快速选中文本
[github: terryma/vim-expand-region](https://github.com/terryma/vim-expand-region)
| 模式 | 键 | 说明 |
| ------ | -------- | --------- |
| visual | v | 扩大选中范围 |
| visual | V | 缩小选中范围 |
lfv89/vim-interestingwords -- 高亮关键词
[github: lfv89/vim-interestingwords](https://github.com/lfv89/vim-interestingwords)
| 模式 | 键 | 说明 |
| ------ | -------- | --------- |
| normal | ff | 高亮/取消高亮 当前词 |
| normal | FF | 取消高亮 全部词 |
mg979/vim-visual-multi -- 虚拟多光标
[gihub: **mg979/vim-visual-multi**](https://github.com/mg979/vim-visual-multi)
[bilibili视频介绍: BV1uF411c7Ro](https://www.bilibili.com/video/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](https://github.com/iamcco/markdown-preview.nvim)
guide: 如果无法使用 请
1. 修改 lua/pack/markdown.lua 中的 G.g.mkdp_browser 去掉或者修改成自己使用的浏览器
2. cd ~/.local/share/nvim/site/pack/packer/opt/markdown-preview.nvim/app && yarn
| 模式 | 键 | 说明 |
| ------ | -------- | --------- |
| normal | F5 | 在浏览器预览markdown |
mzlogin/vim-markdown-toc -- md 生成目录
[github: mzlogin/vim-markdown-toc](https://github.com/mzlogin/vim-markdown-toc)
:GenTocGFM 在markdown文件头部生成TOC
voldikss/vim-floaterm -- 悬浮终端插件
[github: voldikss/vim-floaterm](https://github.com/voldikss/vim-floaterm)
| 模式 | 键 | 说明 |
| ------ | -------- | --------- |
| normal | ctrl + t | 打开浮动终端 |
| normal | ctrl + b | 打开数据库可视化工具(dadbod) |
| normal | F5 | 根据文件类型启动浮动终端执行当前文件 |
tpope/vim-dadbod -- 数据库可视化工具
[github: tpope/vim-dadbod](https://github.com/tpope/vim-dadbod)
[github: kristijanhusak/vim-dadbod-ui](kristijanhusak/vim-dadbod-ui)
:DBUI 来使用 数据库可视化工具
添加链接: let g:dbs = [{ 'name': 'connection_name', 'url': 'mysql://user:password@host:port' }]
注意 url内的东西需要url_encode
也可直接 :CALLDB 呼出界面按界面引导 添加链接 链接格式同上
junegunn/fzf.vim -- 文本/文件搜索
[github: **junegunn/fzf.vim**](https://github.com/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 -- 弹出式的命令行
[github: gelguy/wilder.nvim](https://github.com/gelguy/wilder.nvim)
kyazdani42/nvim-tree.lua -- 文件管理器
[github: kyazdani42/nvim-tree.lua](https://github.com/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](https://github.com/nvim-treesitter/nvim-treesitter)
没啥好说明的 用就完了
可以用 H 快捷键看高亮组 然后到 lua/pack/tree-sitter.lua 中修改对应的样式
R刷新高亮
neoclide/coc.nvim -- coc
[github: neoclide/coc.nvim](https://github.com/neoclide/coc.nvim)
**建议到对应的仓库看一下**
全局的插件列表 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
[github: github/copilot.vim](https://github.com/github/copilot.vim)
| 模式 | 键 | 说明 |
| ------ | -------- | --------- |
| insert | right | 接受建议 |
| insert | ctrl + ] | 取消建议 |
| insert | alt + [或] | 上/下个建议 |
yaocccc/nvim-lines.lua -- 状态栏/标签栏
[github: yaocccc/nvim-lines.lua](https://github.com/yaocccc/nvim-lines.lua)
没啥好说明的 用就完了
yaocccc/nvim-hlchunk -- {}区间高亮
[github: yaocccc/nvim-hlchunk](https://github.com/yaocccc/nvim-hlchunk)
没啥好说明的 用就完了
yaocccc/nvim-hl-mdcodeblock.lua -- 高亮markdown中的代码块
[github: yaocccc/nvim-hl-mdcodeblock.lua](https://github.com/yaocccc/nvim-hl-mdcodeblock.lua)
没啥好说明的 用就完了
yaocccc/vim-surround -- 快速操作({["'`等的
[github: yaocccc/vim-surround](https://github.com/yaocccc/vim-surround)
选中文本后 再使用 " ' { ( 等 可以将文本包裹起来
ds": 删除包裹的"" 其他的相同
ys": 用""将当前词包裹起来
cs"{: 用{}替换掉""
yaocccc/vim-comment -- 快速注释
[github: yaocccc/vim-comment](https://github.com/yaocccc/vim-comment)
普通模式 ??: 行注释当前行
选中文本后 /: 行注释选中内容
选中文本后 ?: 块注释选中内容
**以上操作 可以用相同的操作逆转 (??行注释 ??取消行注释)**
yaocccc/vim-fcitx2en -- 退出insert模式时 自动切换到英文
[github: yaocccc/vim-fcitx2en](https://github.com/yaocccc/vim-fcitx2en)
yaocccc/vim-echo -- 根据文件名或文件类型快速echo、print、console.log
[github: yaocccc/vim-echo](https://github.com/yaocccc/vim-echo)
选中文本后 C: 再下一行添加 console.log(选中的内容) 或 echo $选中的内容 等等等
yaocccc/nvim-foldsign -- 在signcolumn显示折叠信息
[github: yaocccc/nvim-foldsign](https://github.com/yaocccc/nvim-foldsign)
在signcolumn显示折叠信息 如果你使用折叠的话
## Support: buy me a coffee