docs(readme): 补充 ex-colors、键位映射等文档; fix(pack): mini.starter/notify 添加 pcall 保护

This commit is contained in:
xfy 2026-05-29 10:57:19 +08:00
parent 3f0d338fb8
commit 4bd841fab1
2 changed files with 56 additions and 42 deletions

View File

@ -7,9 +7,10 @@
- **内置插件管理器**`vim.pack`Neovim 0.12+),无需 lazy.nvim / packer - **内置插件管理器**`vim.pack`Neovim 0.12+),无需 lazy.nvim / packer
- **自定义懒加载框架**`lua/lazy.lua`(约 35 行),通过 `on_event` / `on_keys` / `load` 延迟加载重型模块 - **自定义懒加载框架**`lua/lazy.lua`(约 35 行),通过 `on_event` / `on_keys` / `load` 延迟加载重型模块
- **mini.nvim 单体插件集** — starter、pick、extra、files、icons、notify、cmdline、completion、snippets、diff、surround - **mini.nvim 单体插件集** — starter、pick、extra、files、icons、notify、cmdline、completion、snippets、diff、surround
- **LSP + 代码格式化** — nvim-lspconfig + mason + conform.nvim保存时自动格式化 - **LSP + 代码格式化** — nvim-lspconfig + mason + conform.nvim保存时自动格式化,支持全局/Buffer 级别开关
- **快速启动** — 禁用约 20 个内置插件,剪贴板通过 `vim.schedule()` 延迟初始化 - **快速启动** — 禁用约 20 个内置插件,启用 Neovim 0.12+ 内置 UI 增强 (`vim._core.ui2`)
- **启动仪表盘** — ASCII Logo + 实时模块加载统计 + 启动耗时 - **启动仪表盘** — ASCII Logo + 实时模块加载统计 + 启动耗时
- **Colorscheme 优化**`ex-colors.nvim` 提取并生成精简版 colorscheme默认 `ex-catppuccin-mocha`
## 懒加载策略 ## 懒加载策略
@ -20,6 +21,7 @@
| `BufReadPost` | diff、surround | | `BufReadPost` | diff、surround |
| `BufWritePre` | conform | | `BufWritePre` | conform |
| 按键触发 | pick、files、fugitive、grugfar | | 按键触发 | pick、files、fugitive、grugfar |
| 命令触发 | ex-colors (`:ExColors`) |
## 键位映射Leader = 空格) ## 键位映射Leader = 空格)
@ -63,6 +65,7 @@
| `gd` | 跳转到定义 | | `gd` | 跳转到定义 |
| `gh` | 悬停查看文档 | | `gh` | 悬停查看文档 |
| `<leader>ca` | 代码操作 | | `<leader>ca` | 代码操作 |
| `<leader>cr` | 重命名符号 |
| `<leader>fm` | 格式化当前 Buffer | | `<leader>fm` | 格式化当前 Buffer |
| `df` | 显示行诊断浮动窗口 | | `df` | 显示行诊断浮动窗口 |
| `<leader>ds` | 诊断位置列表 | | `<leader>ds` | 诊断位置列表 |
@ -83,7 +86,9 @@
| 键位 | 动作 | | 键位 | 动作 |
|--------------|----------------------------| |--------------|----------------------------|
| `<leader>ss` | 全局替换光标下的单词 | | `<leader>ss` | 全局替换光标下的单词 |
| `<leader>u` | 打开内置撤销树 | | `<leader>ud` | 打开内置撤销树 |
| `<leader>uf` | 切换全局自动格式化 |
| `<leader>uF` | 切换当前 Buffer 自动格式化 |
| `<Esc>` | 清除搜索高亮 | | `<Esc>` | 清除搜索高亮 |
| `J` | 合并行且不移动光标 | | `J` | 合并行且不移动光标 |
@ -119,6 +124,7 @@
:PackAdd user/repo " 添加插件 :PackAdd user/repo " 添加插件
:PackDel plugin-name " 删除插件 :PackDel plugin-name " 删除插件
:PackUpdate [name] " 更新全部或指定插件 :PackUpdate [name] " 更新全部或指定插件
:ExColors! " 提取当前 colorscheme 为优化版 ex-colors
``` ```
## 文件结构 ## 文件结构
@ -138,7 +144,8 @@ lua/plugins/
git.lua -- Git 工具hunk 预览、blame、文件历史 git.lua -- Git 工具hunk 预览、blame、文件历史
nvim-pack-lock.json -- 插件锁定文件 nvim-pack-lock.json -- 插件锁定文件
colors/ colors/
catppuccin-*.lua -- Catppuccin 配色方案mocha 为默认) ex-catppuccin-mocha.lua -- 默认配色ex-colors 生成的优化版)
catppuccin-*.lua -- 原始 Catppuccin 配色方案
``` ```
## 开发 / 验证 ## 开发 / 验证

View File

@ -152,8 +152,6 @@ local logos = {
]], ]],
} }
local starter = require("mini.starter")
-- 所有功能模块列表(用于页脚 "X/Y modules" 统计)。 -- 所有功能模块列表(用于页脚 "X/Y modules" 统计)。
-- 口径与 lazy._loaded 一致:每个独立初始化的功能模块算一个, -- 口径与 lazy._loaded 一致:每个独立初始化的功能模块算一个,
-- 不再按 vim.pack 的插件包统计(如 mini.nvim 包含多个模块)。 -- 不再按 vim.pack 的插件包统计(如 mini.nvim 包含多个模块)。
@ -184,7 +182,11 @@ for _, line in ipairs(logos.f) do
max_header_width = math.max(max_header_width, vim.fn.strdisplaywidth(line)) max_header_width = math.max(max_header_width, vim.fn.strdisplaywidth(line))
end end
starter.setup({ -- mini.starter — 启动页
-- 使用 pcall 保护,避免首次启动插件尚未下载完成时报错
local ok_starter, starter = pcall(require, "mini.starter")
if ok_starter then
starter.setup({
autoopen = true, -- 无参数启动时自动打开 autoopen = true, -- 无参数启动时自动打开
evaluate_single = false, -- 只有一个选项时不自动执行 evaluate_single = false, -- 只有一个选项时不自动执行
items = { { name = " ", action = "", section = "" } }, -- 空选项(仅展示页眉页脚) items = { { name = " ", action = "", section = "" } }, -- 空选项(仅展示页眉页脚)
@ -209,9 +211,10 @@ starter.setup({
content_hooks = { content_hooks = {
starter.gen_hook.aligning("center", "center"), starter.gen_hook.aligning("center", "center"),
}, },
}) })
lazy.track("starter") lazy.track("starter")
end
-- --------------------------------------------------------------------------- -- ---------------------------------------------------------------------------
-- mini.files — 文件浏览器(按键触发懒加载) -- mini.files — 文件浏览器(按键触发懒加载)
@ -282,17 +285,21 @@ vim.api.nvim_create_autocmd("VimEnter", {
-- --------------------------------------------------------------------------- -- ---------------------------------------------------------------------------
-- 替换默认的 vim.notify提供美观的浮动通知窗口。 -- 替换默认的 vim.notify提供美观的浮动通知窗口。
-- 直接初始化(轻量,不阻塞启动)。 -- 直接初始化(轻量,不阻塞启动)。
require("mini.notify").setup({ -- 使用 pcall 保护,避免首次启动插件尚未下载完成时报错
local ok_notify, notify = pcall(require, "mini.notify")
if ok_notify then
notify.setup({
content = { content = {
-- 简化格式:只显示消息内容,不附加时间戳等元信息 -- 简化格式:只显示消息内容,不附加时间戳等元信息
format = function(notif) format = function(notif)
return notif.msg return notif.msg
end, end,
}, },
}) })
-- 将 vim.notify 重定向到 mini.notify -- 将 vim.notify 重定向到 mini.notify
vim.notify = require("mini.notify").make_notify() vim.notify = notify.make_notify()
lazy.track("notify") lazy.track("notify")
end
-- --------------------------------------------------------------------------- -- ---------------------------------------------------------------------------
-- mini.cmdline — 增强命令行 -- mini.cmdline — 增强命令行