README.md

March 18, 2026 · View on GitHub

nvimyes


如何使用

  1. 将项目clone至 ~/.config/nvim 目录中(注意备份好自己的配置)

    cd ~/.config
    git clone https://github.com/yaocccc/nvim
    
  2. 启动vim 等待自动安装lazy.nvim(包管理工具、如果你没有安装的话) 会自动安装所有插件

  3. 打开对应语言的文件时,会通过 mason 自动安装对应的 LSP Server

  4. 每次修改过lua/plugins/ 中的插件配置后,请运行 :Lazy sync 同步插件

配置结构

.
├─ lua/                -- LUA配置目录
│  ├─ plugins/         -- lazy.nvim 插件配置目录
│  ├─ options.lua      -- 基础配置(各种set、autocmd)
│  ├─ keymap.lua       -- 快捷键配置
│  ├─ lazyinit.lua     -- lazy.nvim 初始化
│  └─ lspinit.lua      -- LSP 初始化(按文件类型自动启用LSP)
├─ lsp/                -- 各语言LSP Server配置
├─ ftplugin/           -- 按文件类型的特殊配置
├─ colors/             -- 样式相关(theme)
├─ snippets/           -- 代码片段
├─ init.lua            -- 配置入口
├─ word.txt            -- 补全用词库
└─ README.md           -- README

lua/options.lua 通用基础配置说明

不额外说明了,有需要直接看 lua/options.lua 的注释

lua/keymap.lua 快捷键相关配置说明

模式说明
normal;:
normal+数字自增
normal_数字自减
normal,重复上一次宏操作(@q)
normalctrl + j从, 处打断当前行
normal\清除当前搜索词高亮
normal\w开启/关闭wrap显示
normalbackspace删除当前词并插入
insertctrl + h(backspace)删除内容置词首
commandctrl + aHome
commandctrl + eEnd
allctrl + s进入替换模式
normalSsave (智能保存: 自动创建目录/sudo)
normalW关闭当前buffer
normalQquit
normalR重载当前文件
visual> or tab将代码块右移
visual< or shift + tab将代码块左移
allshift + 方向选中文本(类似于在其他编辑器的体验)
allctrl + shift + 方向快速移动/跳转行首行尾
allctrl + u清空本行
allalt + up/down上下移动当前行/块
normalalt + a全选
normalsv左右分屏
normalsp上下分屏
normalsc关闭当前窗口
normalso关闭其他所有窗口
normals + 方向聚焦到对应窗口
normalctrl + space切换窗口
normals=将窗口大小置为相同
normalalt + ,窗口减小
normalalt + .窗口增大
normalss切换到下个buffer
allalt + left or right左右跳转buffer
allF5一键运行当前文件
normal-折叠/反折叠
visual-折叠选中内容
normalspace在行首 第一个非空字符 行尾 跳转
normal0匹配括号跳转(%)
visualt驼峰和下划线转换(首字母小写)
visualT驼峰和下划线转换(首字母大写)
normaltt在下方打开终端
insert( [ { " ' `自动配对括号/引号
normalx删除字符(不影响剪切板)
visualc修改选中(不影响剪切板)
visualp/P粘贴(不影响剪切板)

lua/lspinit.lua LSP 配置说明

使用原生 LSP + mason 自动安装管理 LSP Server。打开对应语言的文件时会自动安装并启用对应的 LSP。

当前支持的语言:

语言LSP Server
lualua_ls
soliditysolidity_ls
javascript/typescript/reactvtsls, tailwindcss
vuevue_ls, vtsls, tailwindcss
htmlhtml, tailwindcss
css/scss/lesscssls, tailwindcss
json/jsoncjsonls
gogopls
sh/bash/zshbashls

lua/plugins/ 插件相关的配置说明

插件配置使用 lazy.nvim 管理,所有插件配置文件位于 lua/plugins/ 目录下。
使用 :Lazy 命令可以打开插件管理界面,使用 :Lazy sync 同步插件。

插件说明以及键位绑定

dstein64/vim-startuptime -- 启动时间分析

github: dstein64/vim-startuptime

:StartupTime

saghen/blink.cmp -- 自动补全

github: saghen/blink.cmp

补全源: lsp, path, snippets, buffer, ripgrep, datword(自定义词库)

模式说明
insertTab选择下一个/触发补全
insertUp/Down上/下选择
insertCR确认选择
insertctrl + y选中并确认
insertctrl + e取消补全
insertctrl + k显示补全/文档
cmdlineTab触发补全/选择下一个
nvimdev/lspsaga.nvim -- LSP 增强UI

github: nvimdev/lspsaga.nvim

模式说明
normalgd跳转到定义
normalgD跳转到声明
normalgy跳转到类型定义
normalgi跳转到实现
normalgr查找引用(Finder)
normalK查看悬浮文档
allga代码操作(Code Action)
normalF2重命名
normalctrl + e查看当前buffer诊断列表
normal\e查看workspace诊断列表
visual=格式化选中内容
mason-org/mason.nvim -- LSP Server 管理

github: mason-org/mason.nvim

:Mason 打开管理界面,LSP Server 会在打开对应文件时自动安装

lewis6991/gitsigns.nvim -- Git 集成

github: lewis6991/gitsigns.nvim

模式说明
normal(上一处修改
normal)下一处修改
normalC预览当前hunk
normal\gdiff当前文件
terryma/vim-expand-region -- 快速选中文本

github: terryma/vim-expand-region

模式说明
visualv扩大选中范围
visualV缩小选中范围
Mr-LLLLL/interestingwords.nvim -- 高亮关键词

github: Mr-LLLLL/interestingwords.nvim

模式说明
normalff高亮/取消高亮 当前词
normalFF取消高亮 全部词
mg979/vim-visual-multi -- 虚拟多光标

github: mg979/vim-visual-multi

建议到对应的仓库仔细看文档

模式说明
normalctrl + up/down上下添加虚拟光标(normal模式)
normalctrl + left/right虚拟光标左右扩选(visual模式)
normalctrl + d所有当前词添加虚拟光标(visual模式)
normalctrl + x当前字符添加虚拟光标(normal模式)
normalctrl + w添加当前词首(normal模式)
allctrl + n/p添加下/上一个当前词到虚拟光标
allq移除当前光标位置下的虚拟光标
normaltab切换到visual模式
visualtab切换到normal模式
ibhagwan/fzf-lua -- 文本/文件搜索

github: ibhagwan/fzf-lua

注意要配合rg使用,请自己手动安装: ripgrep fd bat

模式说明
normalctrl + a全局文本搜索(live_grep)
normalctrl + p全局文件搜索
normalctrl + bbuffer列表搜索
normalctrl + l当前buffer文本搜索
normalctrl + ggit变更文件搜索
normalctrl + h历史文件搜索
iamcco/markdown-preview.nvim -- md 预览插件

github: iamcco/markdown-preview.nvim

模式说明
normalF5在浏览器预览markdown
MeanderingProgrammer/render-markdown.nvim -- markdown 渲染增强

github: MeanderingProgrammer/render-markdown.nvim

在nvim中直接渲染markdown,包括代码块高亮等

模式说明
normalF6切换是否渲染
voldikss/vim-floaterm -- 悬浮终端插件

github: voldikss/vim-floaterm

模式说明
normalctrl + t打开浮动终端
normalF5根据文件类型启动浮动终端执行当前文件
kyazdani42/nvim-tree.lua -- 文件管理器(浮动窗口)

github: kyazdani42/nvim-tree.lua

模式说明
normalT打开/关闭 nvim-tree
nvim-tree内a/A新建文件或文件夹
nvim-tree内r重命名
nvim-tree内W关闭所有打开的目录
nvim-tree内关闭当前目录
nvim-tree内/打开文件/目录
nvim-tree内回退到上级目录
nvim-tree内Pcd到选中目录
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内关闭nvim-tree
nvim-tree内(/)上/下一个git变更
nvim-tree内</>上/下一个诊断
nvim-treesitter/nvim-treesitter -- 文本分析插件

github: nvim-treesitter/nvim-treesitter

打开对应语言文件时自动安装对应的 treesitter parser

nvimdev/indentmini.nvim -- 缩进线显示

github: nvimdev/indentmini.nvim

显示缩进参考线,高亮当前缩进层级

zbirenbaum/copilot.lua -- Github Copilot

github: zbirenbaum/copilot.lua

模式说明
insertright接受建议
insertctrl + up/down上/下个建议
acidsugarx/babel.nvim -- 翻译插件

github: acidsugarx/babel.nvim

模式说明
normalmm翻译当前词
visualmm翻译选中文文本
uga-rosa/ccc.nvim -- 颜色选择器

github: uga-rosa/ccc.nvim

:CccPick 打开颜色选择器
:CccHighlighterEnable 开启颜色高亮显示

yaocccc/nvim-lines.lua -- 状态栏/标签栏

github: yaocccc/nvim-lines.lua

没啥好说明的 用就完了

yaocccc/nvim-foldsign -- 在signcolumn显示折叠信息

github: yaocccc/nvim-foldsign

在signcolumn显示折叠信息 如果你使用折叠的话

yaocccc/vim-surround -- 快速操作({["'`等的

github: yaocccc/vim-surround

选中文本后 再使用 " ' { ( 等 可以将文本包裹起来
ds": 删除包裹的"" 其他的相同
ys": 用""将当前词包裹起来
cs"{: 用{}替换掉""

yaocccc/vim-comment -- 快速注释

github: yaocccc/vim-comment

普通模式 ??: 行注释当前行 选中文本后 /: 行注释选中内容 选中文本后 ?: 块注释选中内容

以上操作 可以用相同的操作逆转 (??行注释 ??取消行注释)

yaocccc/vim-fcitx2en -- 退出insert模式时 自动切换到英文

github: yaocccc/vim-fcitx2en

yaocccc/vim-echo -- 根据文件名或文件类型快速echo、print、console.log

github: yaocccc/vim-echo

选中文本后 C: 再下一行添加 console.log(选中的内容) 或 echo $选中的内容 等等等

Support: buy me a coffee