SuperAPI AI 工具集

nvim-config

写作与研究

查看项目

更新于 10-15 21:47

技能介绍

用途:为编写、审查或修改采用 Neovim 内置约定的配置文件提供参考,不依赖插件管理器框架。要求 Neovim >= v0.12.0。

配置位置与启动:该原生配置位于 ~/.dotfiles/nvim-fredrik/,通过 GNU Stow 软链接到 ~/.config/nvim-fredrik。可用 NVIM_APPNAME=nvim-fredrik nvim 启动;修改后可在 ~/.dotfiles/ 执行 ./rebuild.sh --stow 应用链接。Neovim 由 Bob 管理,二进制位于 ~/.local/share/bob/nvim-bin/nvim。

主要结构与职责:init.lua 仅设 leader 键、加载 options、诊断与按键映射;lua/ 存放 require() 模块(lazyload.lua 提供 VimEnter/UIEnter 延迟队列与 on_override 钩子,merge.lua 做深合并,options.lua 管 vim.opt);plugin/ 下每个文件自包含(vim.pack.add + setup + 按键映射),按字母顺序加载;plugin/lang/ 放语言专属插件与自定义 filetype;ftplugin/ 放按文件类型的 vim.opt_local 设置;after/lsp/ 放所有 LSP 服务端配置表,文件名即服务名,需在 plugin/lsp.lua 用 vim.lsp.enable() 启用。

插件加载三种模式:一为急加载,在启动第 11 步 setup,适用于配色、图标、treesitter 等;二为延迟到 VimEnter,把 vim.pack.add 放进 on_vim_enter 回调,是默认延迟模式;三为真正惰性,用 vim.pack.add(packages, { load = function() end }) 仅登记到磁盘,首次通过键位等触发时才 vim.cmd.packadd 载入,适用于调试器、测试运行器等。

跨插件数据共享用 _G.Config:在生产者文件顶层赋值,消费者在 lazyload 块内读取。项目级覆盖依赖 vim.opt.exrc = true,会加载工作目录下的 .nvim.lua(在第 7c 步,早于 plugin/),需用 require("lazyload").on_override() 覆盖插件配置。

限制与说明:文档为配置惯例参考,未提供完整代码示例的其余部分;未提供收费、价格或平台信息。lockfile 位于 $XDG_CONFIG_HOME/nvim/nvim-pack-lock.json,可提交版本控制以复现安装。本配置未提供 URL 简写辅助函数。