这是什么?
lazy.nvim 是一个现代的 Neovim 插件管理器。它会安装和更新你的插件,通过内置界面展示它们,并借助自动缓存、字节码编译和懒加载让启动速度保持很快。
这是需要单独安装的程序,还是装在 Neovim 里面的东西?
它装在 Neovim 里面:lazy.nvim 本身就是一个用 Lua 编写的 Neovim 插件,你把它加进配置即可。之后它就会管理你的其他所有插件。
怎么安装设置?
把 lazy.nvim 添加到你的 Neovim 配置里;之后它会在 Neovim 启动前自动安装缺失的插件,所以你可以马上使用。完整的操作指南见文档网站。
我的电脑需要满足什么条件才能用?
需要使用 LuaJIT 构建的 Neovim 0.8.0 或更新版本,另外配合 partial clone 功能需要 Git 2.19.0+。Nerd Font 是可选的,luarocks 只有在用到 rockspec 时才需要——把 opts.pkg.sources 里的 rockspec 移除即可禁用它。
它在 Windows 上也能运行吗,还是只支持 macOS 和 Linux?
Neovim 能运行的地方它都能运行,所以 Windows、macOS 和 Linux 都没问题——它是编辑器内部的 Lua 插件,不是原生二进制程序。
它是怎么让启动速度保持很快的?
它会缓存 Lua 模块并进行字节码编译,按事件、命令、文件类型和按键映射懒加载插件,把工作放到异步执行,甚至会自动对配色方案做懒加载。安装时用 partial clone 代替 shallow clone,也能让安装更轻量。
我能把插件固定在确切的版本上吗?
可以——lazy.nvim 支持 commit、分支、标签、版本号和完整的 Semver,并会生成 lazy-lock.json 锁定文件来记录已安装的内容。它还会自动检查更新,状态栏组件会显示有多少个待更新。
我自己在开发插件——能让它加载本地的副本,而不是已发布的仓库吗?
可以,它提供了 dev 选项和模式来使用本地插件,你可以像对待其他插件一样,通过 lazy.nvim 开发自己的插件。
我所有的插件配置都必须放在一个文件里吗?
不用,配置可以拆分到多个文件里。另外还有个贴心功能:当插件没有附带 vimdocs 时,lazy.nvim 会根据插件 README.md 文件里的标题生成 helptags。
What are similar projects?
LazyVim, mason.nvim, telescope.nvim, LunarVim, ale, SpaceVim, nvim-lspconfig, AstroNvim
Which topics is it in?
neovim-plugin, nvim, plugin-manager, neovim, lua, vim, caching, package-manager, async, editor, tui, git
