- 拆分 pack.lua 过载内容:starter→plugins/starter.lua, files→plugins/files.lua - 统一 Git 键位到 git.lua,统一 pick 键位到 pick.lua - 移动 TextYankPost autocmd 从 options.lua 到 autocmds.lua - 修正 colors_name 与文件名匹配,删除 4 个未使用 colorscheme - 删除 keymaps.lua 重复映射,移除 all_modules 中的 ex-colors - 修正 plugins/ 文件头注释路径,删除 moonfly 残留变量 - 提取 mini.files 公共函数消除 starter buffer 中的重复逻辑
87 lines
4.9 KiB
Lua
87 lines
4.9 KiB
Lua
-- =============================================================================
|
||
-- Neovim 配置文件入口 (init.lua)
|
||
-- =============================================================================
|
||
-- 本文件是 Neovim 启动时第一个加载的配置文件。
|
||
-- 设计目标:最小化启动开销,所有重模块均通过自定义懒加载框架延迟加载。
|
||
--
|
||
-- 文件加载顺序:
|
||
-- 1. init.lua → 禁用内置插件、设置 colorscheme、加载核心模块
|
||
-- 2. options.lua → 全局选项 (number, indent, clipboard 等)
|
||
-- 3. keymaps.lua → 键位映射 (leader = space)
|
||
-- 4. autocmds.lua → 自动命令 (恢复光标位置、折叠、yank 高亮等)
|
||
-- 5. usercmds.lua → 自定义命令 (:PackAdd, :PackDel, :PackUpdate)
|
||
-- 6. pack.lua → 插件声明与懒加载配置
|
||
-- =============================================================================
|
||
|
||
-- 记录启动时间点,用于在 starter 页脚展示启动耗时。
|
||
-- vim.uv (Neovim 0.10+) 是 libuv 的绑定,提供高性能计时器;
|
||
-- vim.loop 是旧版兼容名,在 0.10 之前使用。
|
||
_G.nvim_start_time = (vim.uv or vim.loop).hrtime()
|
||
|
||
-- =============================================================================
|
||
-- 禁用不需要的内置插件
|
||
-- =============================================================================
|
||
-- Neovim 默认会加载大量内置插件(netrw、tar、zip 等),
|
||
-- 这些插件会在 startup 阶段 source 对应的 plugin/*.vim 文件,增加启动时间。
|
||
-- 通过设置 loaded_* 全局变量为 1(真值),可以跳过这些插件的加载。
|
||
--
|
||
-- 注意:loaded_syntax 设为 1 是为了避免旧版 Vim 兼容的 syntax 加载路径;
|
||
-- 实际语法高亮由 treesitter 接管,不受影响。
|
||
vim.g.loaded_2html_plugin = 1 -- :TOhtml 命令(将 buffer 导出为 HTML)
|
||
vim.g.loaded_getscript = 1 -- GetScript 插件(自动下载脚本)
|
||
vim.g.loaded_getscriptPlugin = 1 -- GetScript 插件主体
|
||
vim.g.loaded_gzip = 1 -- Gzip 压缩文件读写支持
|
||
vim.g.loaded_logipat = 1 -- LogiPat 逻辑模式匹配
|
||
vim.g.loaded_matchit = 1 -- % 匹配扩展(由 treesitter 或 mini.pairs 替代)
|
||
vim.g.loaded_matchparen = 1 -- 括号匹配高亮(由 treesitter 替代)
|
||
vim.g.loaded_netrw = 1 -- Netrw 文件浏览器(由 mini.files 替代)
|
||
vim.g.loaded_netrwFileHandlers = 1 -- Netrw 文件处理器
|
||
vim.g.loaded_netrwPlugin = 1 -- Netrw 插件主体
|
||
vim.g.loaded_netrwSettings = 1 -- Netrw 设置
|
||
vim.g.loaded_rrhelper = 1 -- RRHelper(R 语言相关)
|
||
vim.g.loaded_spellfile_plugin = 1 -- 拼写文件自动下载
|
||
vim.g.loaded_tar = 1 -- Tar 归档支持
|
||
vim.g.loaded_tarPlugin = 1 -- Tar 插件主体
|
||
vim.g.loaded_tutor_mode_plugin = 1 -- Vim Tutor 教程模式
|
||
vim.g.loaded_vimball = 1 -- Vimball 归档格式
|
||
vim.g.loaded_vimballPlugin = 1 -- Vimball 插件主体
|
||
vim.g.loaded_zip = 1 -- Zip 归档支持
|
||
vim.g.loaded_zipPlugin = 1 -- Zip 插件主体
|
||
vim.g.loaded_rplugin = 1 -- 远程插件框架
|
||
vim.g.loaded_tohtml = 1 -- :TOhtml 的另一入口
|
||
vim.g.loaded_syntax = 1 -- 旧版 syntax 自动加载
|
||
vim.g.loaded_synmenu = 1 -- Syntax 菜单
|
||
vim.g.loaded_optwin = 1 -- 选项窗口 (:options)
|
||
vim.g.loaded_compiler = 1 -- 编译器插件自动加载
|
||
vim.g.loaded_bugreport = 1 -- Bug 报告生成
|
||
vim.g.loaded_ftplugin = 1 -- 文件类型插件(手动管理)
|
||
|
||
-- =============================================================================
|
||
-- 启用 Neovim 0.12+ 内置 UI 增强
|
||
-- =============================================================================
|
||
-- vim._core.ui2 是 Neovim 0.12 实验性的 UI 增强模块,
|
||
-- 启用后提供更现代的默认界面行为(如更好的消息处理)。
|
||
require("vim._core.ui2").enable({})
|
||
|
||
-- =============================================================================
|
||
-- 加载核心配置模块
|
||
-- =============================================================================
|
||
-- 这些模块按顺序加载,后续模块可以依赖前面模块的设置。
|
||
-- 例如 pack.lua 中使用的键位映射依赖于 keymaps.lua 中设置的 leader 键。
|
||
require("options") -- 全局 vim 选项设置
|
||
require("keymaps") -- 键位映射定义
|
||
require("autocmds") -- 自动命令(autocmd)
|
||
require("usercmds") -- 用户自定义命令
|
||
require("pack") -- 插件管理与懒加载配置
|
||
|
||
-- =============================================================================
|
||
-- Colorscheme 设置
|
||
-- =============================================================================
|
||
-- 应用 colorscheme。catppuccin-mocha 的定义在 colors/catppuccin-mocha.lua 中。
|
||
-- 该文件是一个精简版,只包含 Mocha 变体的调色板和高亮组定义。
|
||
vim.cmd("colorscheme ex-catppuccin-mocha")
|
||
|
||
-- 记录 init.lua 执行完成时间(含 colorscheme),供启动页展示更接近 --startuptime 的耗时。
|
||
-- pack.lua 中的 footer 优先使用 VimEnter 时间,回退到此时间点。
|
||
_G.nvim_init_done = (vim.uv or vim.loop).hrtime()
|