Go to file
QQ 4eea6fd736 update 2026-06-17 18:03:03 +08:00
lua update 2026-06-17 18:03:03 +08:00
snippets refactor: fix medium-severity issues (lazy leak, formatoptions, dupe map, dead opts, split theme, cmp keys, capabilities injection, typos, style) 2026-06-11 11:53:18 +08:00
.gitignore fix: cmdline completion sources, gitignore nvim.log 2026-06-11 12:04:58 +08:00
README.md docs: add <C-i> Reasonix keymap to README 2026-06-11 16:38:43 +08:00
init.lua docs: add README and key config comments 2026-06-11 16:16:45 +08:00

README.md

Neovim 配置

基于 Neovim 0.12+lazy.nvim 管理插件,支持原生和 VSCode Neovim 双模式。

目录结构

init.lua                  # 入口:安装 lazy.nvim → keymaps → 分支判断
lua/
  G.lua                   # 全局工具单例vim API 别名 + 映射/命令/自动命令封装)
  keymap.lua              # 基础快捷键
  options.lua             # vim.opt 基础设置
  vsc.lua                 # VSCode Neovim 模式下的精简启动(仅编辑插件)
  plugs.lua               # 插件聚合器10 个模块)
  plugs/
    nvim-lspconfig.lua    # LSP 核心7 个 server 注册 + LSP 快捷键
    mason.lua             # LSP server 自动安装Mason
    nvim-cmp.lua          # 补全引擎nvim-cmp + vsnip + lspkind + 命令行补全)
    treesitter.lua        # 语法高亮 + 自动安装 parser
    symbols-outline.lua   # 代码大纲侧边栏
    winbar.lua            # 顶部文件路径 + 函数标签
    nvimtree.lua          # 文件树
    theme.lua             # 主题tokyonight+ 状态栏lualine+ 标签栏tabline
    edit-plugs.lua        # 编辑增强fzf/surround/wildfire/多光标/对齐/Copilot/折叠/hop
    dev.lua               # 开发工具colorizer/go.nvim/conda/toggleterm
  lsp/
    lua.lua               # Lua LSPLuaJIT + 全局变量声明)
    c.lua                 # C/C++ LSPclangd+ :R 编译运行
    bash.lua              # Bash LSP + :R 运行
    go.lua                # Go LSPgopls+ :R / :Rgin 运行
    basedpyright.lua      # Python LSPbasedpyright+ :R 运行
    yaml.lua              # YAML LSP + GitHub Workflow schema
    json.lua              # JSON LSP
snippets/                 # 代码片段C/Go/JSON/Lua

启动流程

G.lua → 克隆/定位 lazy.nvim → keymap.lua →
  若 VSCode 环境 → vsc.lua仅编辑插件
  若原生 Neovim → options.lua → lazy.setup(plugs.lua)

插件总表(~28 个)

分类 插件 用途
LSP nvim-lspconfig LSP 客户端配置
LSP Mason + mason-lspconfig LSP server 自动下载
LSP lua_ls, clangd, bashls, gopls, basedpyright, yamlls, jsonls 7 种语言 LSP
补全 nvim-cmp + cmp-nvim-lsp + cmp-buffer + cmp-path + cmp-cmdline 补全引擎
补全 vim-vsnip + cmp-vsnip 代码片段引擎
补全 lspkind-nvim 补全图标
语法 nvim-treesitter 语法高亮 + 缩进检测
语法 nvim-autopairs 自动括号配对
语法 nvim-hlchunk 括号层级和缩进色块
主题 tokyonight.nvim 配色方案
UI lualine.nvim 状态栏
UI tabline.nvim 顶部标签栏
UI winbar.nvim 顶部文件名 + 函数路径
UI nvim-tree.lua 侧边文件树
UI symbols-outline.nvim 代码大纲
UI colorizer 颜色值可视化
编辑 nvim-fzf 模糊搜索
编辑 vim-surround 环绕字符操作cs/ds/ys
编辑 wildfire.vim 选区自动扩大/缩小
编辑 vim-multiple-cursors 多光标编辑
编辑 vim-easy-align 对齐排版
编辑 hop.nvim 快速跳转(替代 f/F/t/T
编辑 nvim-ufo 现代折叠treesitter 驱动)
AI copilot.vim GitHub Copilot 行内补全
语言 go.nvim Go 开发增强test/coverage 等)
语言 nvim-conda Conda 环境切换
终端 toggleterm.nvim 浮层终端

快捷键速查

基础操作

模式 功能
<leader>nh n 清除搜索高亮
<leader>rp n 全局替换 :%s/
<leader>y / p / v n 全文件复制/粘贴/全选
<A-h> / <A-l> n 切换左右标签页
<c-j/h/k/l> n 窗口间跳转
<c-c> / <c-q> n 关闭窗口 / 强制关闭
<c-S> n sudo 强制保存
<cs-y> v 复制到系统剪切板
<c-e> n 文件树开关
<cs-o> n 代码大纲开关
<c-t> n/i 终端开关
<C-i> n Reasonix AI自适应分屏横屏→下方竖屏→右侧
<up/down/left/right> n 调整窗口大小

LSP

模式 功能
gd n 跳转到定义
gh n 悬浮文档
gD n 跳转到声明
gi n 跳转到实现
gr n 查找引用
<cs-r> n 重命名符号
<cs-i> n 代码格式化

语言运行 :R

语言 命令
C/C++ 编译 → 运行 → 删二进制
Bash sh %
Go go run %:Rgin 运行 main.go
Python python3 %

补全(插入模式)

功能
<C-n> / <C-p> 选择补全项 / snippet 占位跳转
<CR>(未选择时) 换行
<CR>(选择后) 确认补全
Tab Copilot 接受建议

命令栏 / 搜索栏补全

功能
Tab / S-Tab 选择补全项
<CR>(未选择时) 直接执行命令/搜索
<CR>(选择后) 确认补全

编辑

模式 功能
f / F / t / T n hop 行内跳转(覆盖原生)
<c-f> n hop 双字符跳转
ga / = v EasyAlign 对齐
gc / gcc n 注释切换Neovim 0.12 内置)
zc / zo / za / zR n 折叠ufo

文件树内

功能
v 垂直分屏打开
s 水平分屏打开

LSP 说明

  • 使用 Neovim 0.11+ 新 APIvim.lsp.config / vim.lsp.enable
  • capabilitiescmp_nvim_lsp 统一在 nvim-lspconfig.lua 注入,各语言文件不重复 require
  • basedpyright 替代了 pyright(类型检查更强)
  • Mason 自动安装bashls、lua_ls、jsonls、yamllsbasedpyright 需手动装)
  • Treesitter 关闭了 txt parser禁用了 Go恢复中由 go.nvim 处理)

安装

# 克隆到 Neovim 配置目录
git clone https://git.qyhhh.top/newbie/nvim.git ~/.config/nvim

# 首次启动会自动安装 lazy.nvim 及全部插件
nvim

许可

MIT