From 91adf5e44ca0b44a9d9591995c845bfc0c470177 Mon Sep 17 00:00:00 2001 From: xfy Date: Fri, 29 May 2026 11:24:29 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=B0=86=20README=20=E6=8B=86=E5=88=86?= =?UTF-8?q?=E4=B8=BA=20MAPS.md=20=E5=92=8C=20DEVELOPMENT.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DEVELOPMENT.md | 56 ++++++++++++++++++ MAPS.md | 96 ++++++++++++++++++++++++++++++ README.md | 157 ++++--------------------------------------------- 3 files changed, 164 insertions(+), 145 deletions(-) create mode 100644 DEVELOPMENT.md create mode 100644 MAPS.md diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md new file mode 100644 index 0000000..01906f1 --- /dev/null +++ b/DEVELOPMENT.md @@ -0,0 +1,56 @@ +# 开发 / 验证 + +## 文件结构 + +``` +init.lua -- 入口:禁用内置插件,加载核心模块 +lua/options.lua -- 全局选项 +lua/keymaps.lua -- 键位映射 +lua/autocmds.lua -- 自动命令 +lua/usercmds.lua -- :PackAdd / :PackDel / :PackUpdate +lua/pack.lua -- 插件声明 + 懒加载绑定 +lua/lazy.lua -- 自定义懒加载原语(load / on_event / on_keys) +lua/plugins/ + lsp.lua -- LSP + conform 格式化 + treesitter.lua -- 语法树:延迟安装 parser、按 buffer 启用高亮 + pick.lua -- mini.pick 封装:buffer picker、filetype picker + git.lua -- Git 工具:hunk 预览、blame、文件历史 +colors/ + ex-catppuccin-mocha.lua -- 默认配色(ex-colors 生成的优化版) + catppuccin-*.lua -- 原始 Catppuccin 配色方案 +nvim-pack-lock.json -- 插件锁定文件 +MAPS.md -- 键位映射速查表 +DEVELOPMENT.md -- 开发调试命令与常用指令 +``` + +## 语法检查 + +```bash +# 检查 init.lua 语法 +nvim --headless -c 'lua dofile("init.lua")' -c 'qa!' + +# 检查特定模块 +nvim --headless -c 'lua require("pack")' -c 'qa!' +``` + +## 健康检查 + +```bash +nvim --headless -c 'checkhealth' -c 'qa!' +``` + +## 性能测量 + +```bash +# 测量启动时间 +nvim --startuptime /tmp/startup.log +q +``` + +## 常用命令 + +```vim +:PackAdd user/repo " 添加插件 +:PackDel plugin-name " 删除插件 +:PackUpdate [name] " 更新全部或指定插件 +:ExColors! " 提取当前 colorscheme 为优化版 ex-colors +``` diff --git a/MAPS.md b/MAPS.md new file mode 100644 index 0000000..813269c --- /dev/null +++ b/MAPS.md @@ -0,0 +1,96 @@ +# 键位映射 + +> Leader = 空格 + +## 文件查找(mini.pick) + +| 键位 | 动作 | +|----------------|-----------------------------------| +| `ff` | 查找文件 | +| `fw` | 实时 grep(项目中搜索文本) | +| `fa` | 查找所有文件(含隐藏和忽略) | +| `fh` | 搜索帮助标签 | +| `fo` | 最近打开的文件 | +| `fz` | 当前缓冲区行内搜索 | +| `sk` | 搜索键位映射 | +| `` | Buffer 列表(支持 `` 删除) | +| `ft` | 切换文件类型 | + +## 文件浏览器(mini.files) + +| 键位 | 动作 | +|------|---------------------------------------| +| `-` | 在当前文件所在目录打开文件浏览器 | +| `_` | 在项目根目录(git root)打开文件浏览器 | + +## Git + +| 键位 | 动作 | +|----------------|--------------------------| +| `gg` | Fugitive(全屏新标签页) | +| `gd` | Git diff 垂直分割 | +| `ghp` | 预览当前 hunk | +| `ghb` | Blame 当前行 | +| `gB` | Blame 整个文件 | +| `gD` | 查看文件 Git 历史 | +| `sr` | 搜索并替换(grug-far) | + +## LSP 与诊断 + +| 键位 | 动作 | +|--------------|------------------------| +| `gd` | 跳转到定义 | +| `gh` | 悬停查看文档 | +| `ca` | 代码操作 | +| `cr` | 重命名符号 | +| `fm` | 格式化当前 Buffer | +| `df` | 显示行诊断浮动窗口 | +| `ds` | 诊断位置列表 | +| `]d` / `[d` | 下一个 / 上一个诊断 | +| `]e` / `[e` | 下一个 / 上一个错误 | +| `]w` / `[w` | 下一个 / 上一个警告 | + +## Buffer 管理 + +| 键位 | 动作 | +|--------------|--------------------| +| `x` | 关闭当前 Buffer | +| `bn` | 新建 Buffer | +| `bo` | 关闭其他 Buffer | + +## 编辑与搜索 + +| 键位 | 动作 | +|--------------|----------------------------| +| `ss` | 全局替换光标下的单词 | +| `ud` | 打开内置撤销树 | +| `uf` | 切换全局自动格式化 | +| `uF` | 切换当前 Buffer 自动格式化 | +| `` | 清除搜索高亮 | +| `J` | 合并行且不移动光标 | + +## 窗口与标签 + +| 键位 | 动作 | +|--------------|--------------------| +| `` | 窗口间快速跳转 | +| `tc` | 关闭当前标签页 | +| `tn` | 新建标签页 | +| `]` | 下一个标签页 | +| `[` | 上一个标签页 | + +## 终端 + +| 键位 | 动作 | +|--------------|----------------------------| +| `tt` | 打开新终端 | +| `` | 从终端模式返回普通模式 | + +## 文件操作 + +| 键位 | 动作 | +|--------------|----------------------------| +| `` | 保存文件 | +| `` | 复制整个文件内容到剪贴板 | +| `yp` | 复制相对文件路径 | +| `yP` | 复制绝对文件路径 | diff --git a/README.md b/README.md index 90d0f2e..448bfe4 100644 --- a/README.md +++ b/README.md @@ -14,152 +14,19 @@ ## 懒加载策略 -| 触发条件 | 插件 | -|---------------|--------------------------------------| -| `VimEnter` | treesitter、lsp、icons | -| `InsertEnter` | completion、snippets | -| `BufReadPost` | diff、surround | -| `BufWritePre` | conform | -| 按键触发 | pick、files、fugitive、grugfar | -| 命令触发 | ex-colors (`:ExColors`) | +| 触发条件 | 插件 | +| ------------- | ------------------------------ | +| `VimEnter` | treesitter、lsp、icons | +| `InsertEnter` | completion、snippets | +| `BufReadPost` | diff、surround | +| `BufWritePre` | conform | +| 按键触发 | pick、files、fugitive、grugfar | +| 命令触发 | ex-colors (`:ExColors`) | -## 键位映射(Leader = 空格) +## 键位映射 -### 文件查找(mini.pick) +完整键位映射见 [MAPS.md](./MAPS.md)。 -| 键位 | 动作 | -|----------------|-----------------------------------| -| `ff` | 查找文件 | -| `fw` | 实时 grep(项目中搜索文本) | -| `fa` | 查找所有文件(含隐藏和忽略) | -| `fh` | 搜索帮助标签 | -| `fo` | 最近打开的文件 | -| `fz` | 当前缓冲区行内搜索 | -| `sk` | 搜索键位映射 | -| `` | Buffer 列表(支持 `` 删除) | -| `ft` | 切换文件类型 | +## 开发与调试 -### 文件浏览器(mini.files) - -| 键位 | 动作 | -|------|---------------------------------------| -| `-` | 在当前文件所在目录打开文件浏览器 | -| `_` | 在项目根目录(git root)打开文件浏览器 | - -### Git - -| 键位 | 动作 | -|----------------|--------------------------| -| `gg` | Fugitive(全屏新标签页) | -| `gd` | Git diff 垂直分割 | -| `ghp` | 预览当前 hunk | -| `ghb` | Blame 当前行 | -| `gB` | Blame 整个文件 | -| `gD` | 查看文件 Git 历史 | -| `sr` | 搜索并替换(grug-far) | - -### LSP 与诊断 - -| 键位 | 动作 | -|--------------|------------------------| -| `gd` | 跳转到定义 | -| `gh` | 悬停查看文档 | -| `ca` | 代码操作 | -| `cr` | 重命名符号 | -| `fm` | 格式化当前 Buffer | -| `df` | 显示行诊断浮动窗口 | -| `ds` | 诊断位置列表 | -| `]d` / `[d` | 下一个 / 上一个诊断 | -| `]e` / `[e` | 下一个 / 上一个错误 | -| `]w` / `[w` | 下一个 / 上一个警告 | - -### Buffer 管理 - -| 键位 | 动作 | -|--------------|--------------------| -| `x` | 关闭当前 Buffer | -| `bn` | 新建 Buffer | -| `bo` | 关闭其他 Buffer | - -### 编辑与搜索 - -| 键位 | 动作 | -|--------------|----------------------------| -| `ss` | 全局替换光标下的单词 | -| `ud` | 打开内置撤销树 | -| `uf` | 切换全局自动格式化 | -| `uF` | 切换当前 Buffer 自动格式化 | -| `` | 清除搜索高亮 | -| `J` | 合并行且不移动光标 | - -### 窗口与标签 - -| 键位 | 动作 | -|--------------|--------------------| -| `` | 窗口间快速跳转 | -| `tc` | 关闭当前标签页 | -| `tn` | 新建标签页 | -| `]` | 下一个标签页 | -| `[` | 上一个标签页 | - -### 终端 - -| 键位 | 动作 | -|--------------|----------------------------| -| `tt` | 打开新终端 | -| `` | 从终端模式返回普通模式 | - -### 文件操作 - -| 键位 | 动作 | -|--------------|----------------------------| -| `` | 保存文件 | -| `` | 复制整个文件内容到剪贴板 | -| `yp` | 复制相对文件路径 | -| `yP` | 复制绝对文件路径 | - -## 命令 - -```vim -:PackAdd user/repo " 添加插件 -:PackDel plugin-name " 删除插件 -:PackUpdate [name] " 更新全部或指定插件 -:ExColors! " 提取当前 colorscheme 为优化版 ex-colors -``` - -## 文件结构 - -``` -init.lua -- 入口:禁用内置插件,加载核心模块 -lua/options.lua -- 全局选项 -lua/keymaps.lua -- 键位映射 -lua/autocmds.lua -- 自动命令 -lua/usercmds.lua -- :PackAdd / :PackDel / :PackUpdate -lua/pack.lua -- 插件声明 + 懒加载绑定 -lua/lazy.lua -- 自定义懒加载原语(load / on_event / on_keys) -lua/plugins/ - lsp.lua -- LSP + conform 格式化 - treesitter.lua -- 语法树:延迟安装 parser、按 buffer 启用高亮 - pick.lua -- mini.pick 封装:buffer picker、filetype picker - git.lua -- Git 工具:hunk 预览、blame、文件历史 -nvim-pack-lock.json -- 插件锁定文件 -colors/ - ex-catppuccin-mocha.lua -- 默认配色(ex-colors 生成的优化版) - catppuccin-*.lua -- 原始 Catppuccin 配色方案 -``` - -## 开发 / 验证 - -```bash -# 检查 init.lua 语法 -nvim --headless -c 'lua dofile("init.lua")' -c 'qa!' - -# 检查特定模块 -nvim --headless -c 'lua require("pack")' -c 'qa!' - -# 健康检查 -nvim --headless -c 'checkhealth' -c 'qa!' - -# 测量启动时间 -nvim --startuptime /tmp/startup.log +q -``` +开发相关的命令、健康检查、性能测量等见 [DEVELOPMENT.md](./DEVELOPMENT.md)。