如何在状态栏中显示已加载的lazy插件总数
如何在状态栏中显示已加载的lazy插件总数
嘿,我懂你想在状态栏里展示Lazy.nvim已加载插件总数的需求,之前尝试用stats函数没成功对吧?别担心,我给你几个靠谱的解决办法:
直接调用Lazy的官方API获取统计数据
Lazy.nvim本身就提供了require('lazy').stats()函数,它会返回一个包含插件统计信息的表,其中loaded字段就是已加载的插件数量,count字段是总共安装的插件数。如果你用的是Lualine这类状态栏插件,可以这么配置:require('lualine').setup({ sections = { lualine_x = { -- 自定义状态栏组件 function() local lazy_stats = require('lazy').stats() return string.format('插件: %d/%d', lazy_stats.loaded, lazy_stats.count) end, -- 其他你需要的状态栏元素... } } })这样就能在状态栏里显示“插件: 已加载数/总数”的格式,直观又清晰。
解决初始化时机问题
如果你之前调用stats()函数没得到正确结果,大概率是状态栏初始化得太早,Lazy还没完成插件加载。这时候可以监听Lazy的完成事件,等它加载完毕再获取数据:-- 先定义一个变量存储已加载数 local loaded_plugin_num = 0 -- 监听Lazy加载完成的事件 vim.api.nvim_create_autocmd('User', { pattern = 'LazyDone', callback = function() local lazy_stats = require('lazy').stats() loaded_plugin_num = lazy_stats.loaded end }) -- 然后在状态栏组件里使用这个变量 require('lualine').setup({ sections = { lualine_x = { function() local total_num = require('lazy').stats().count return string.format('插件: %d/%d', loaded_plugin_num, total_num) end, } } })这个方法能确保你拿到的是Lazy完全加载后的准确数值,不会出现显示0或者错误数据的情况。
另外提醒一下,不用单独去加载stats.lua文件,直接调用require('lazy').stats()就可以了,这是Lazy官方暴露的标准API,比手动引入内部文件靠谱得多。
备注:内容来源于stack exchange,提问作者Michel Lecomte
相关产品推荐
相关产品推荐

