在 LazyVim 中,加载顺序是精心设计的,遵循特定的层次结构。理解这个顺序对于解决配置问题至关重要:
init.lua
核心初始化
~/.config/nvim/init.lua
vim.g.mapleader = " "
require("config.lazy")
Lazy 插件管理器设置
~/.config/nvim/lua/config/lazy.lua
return {
spec = {
{ import = "plugins" }, -- 加载 plugins 目录
{ import = "plugins.extras" }, -- 加载额外插件
},
defaults = { lazy = true }, -- 全局延迟加载设置
performance = { ... } -- 性能优化设置
}
插件规范加载(按字母顺序)
~/.config/nvim/lua/plugins/*.lua
return {
"stevearc/aerial.nvim",
opts = { backends = { "treesitter" } },
keys = { ... }
}
运行时配置加载
~/.config/nvim/lua/config/*.lua
-- config/aerial.lua
return function()
require("aerial").setup({
backends = { "treesitter" },
layout = { min_width = 30 }
})
end
用户自定义配置
~/.config/nvim/lua/plugin/*.lua
(你的 myProfile.lua
)myProfile.lua
没生效?未正确导入:
-- 在 lazy.lua 中需要添加导入
return {
spec = {
{ import = "plugins" },
{ import = "plugin.myProfile" } -- 添加这行
}
}
加载顺序冲突:
plugins/aerial.lua
)存在,它会优先于你的 myProfile.lua
-- 在 myProfile.lua 中强制覆盖
require("aerial").setup({
backends = { "treesitter" },
force = true -- 关键选项
})
文件位置错误:
~/.config/nvim/lua/plugin/myProfile.lua
plugin
(单数) 不是 plugins
(复数)方案1:创建专属插件配置
-- ~/.config/nvim/lua/plugins/aerial.lua
return {
"stevearc/aerial.nvim",
opts = {
backends = { "treesitter" },
layout = { min_width = 30 }
},
keys = { ... } -- 你的键位映射
}
方案2:在运行时配置覆盖
-- ~/.config/nvim/lua/config/aerial.lua
return function()
require("aerial").setup({
backends = { "treesitter" },
on_attach = function(bufnr)
vim.keymap.set("n", "a" , "AerialToggle!" , { buffer = bufnr })
end
})
end
方案3:修复 myProfile.lua
-- ~/.config/nvim/lua/plugin/myProfile.lua
vim.schedule(function() -- 确保在插件加载后执行
require("aerial").setup({
backends = { "treesitter" },
force = true -- 强制覆盖现有配置
})
end)
:Lazy log
:Lazy show aerial.nvim
:lua =vim.inspect(require("aerial")._state.config.backends)
关键提示:LazyVim 中,
plugins/
目录的配置优先于config/
目录,而plugin/
目录的内容需要显式导入且最后加载。