Skip to content
On this page

插件管理

概述

NvChad 使用 lazy.nvim 来管理插件。 NvChad 定义一个用户的插件表 (table), 然后将其与默认的插件表合并。 您可以在: lua/plugins/init.lua中找到默认的插件表。

懒加载

我们几乎 95% 的插件都是懒加载, 因此我们建议您也对插件进行懒加载, 因为它可以有效减少nvim的启动时间。

  • 我们不希望用户仅仅是因为插件没有懒加载而导致NvChad变慢。
  • 请阅读 lazy.nvim plugin specs 文档来了解哪些选项可以用于延迟加载。
  • 尽量延迟加载所有插件。

管理自定义插件

所有的NvChad默认插件都会设置lazy = true。 因此,如果您希望某个插件在启动时就运行,可以将其修改为 lazy = false.

建议您避免在 custom/plugins/* 目录下保存任何文件。

我们使用lazy.nvim提供的导入功能,来导入目录中的所有文件,并期望每个文件返回插件表(plugin tables). 这种行为不符合我们的目的, 所以建议创建一个名为 custom/plugins.lua 的文件。 这个文件会由 lazy.nvim 导入,目录中的其他文件不会被处理。

  • custom/chadrc.lua
lua
M.plugins = "custom.plugins"
  • custom/plugins.lua
lua
local plugins = {

  { "elkowar/yuck.vim" , lazy = false },  -- 在启动时加载插件

  -- 您可以使用lazy.nvim中的任何插件规范
  {
    "Pocco81/TrueZen.nvim",
    cmd = { "TZAtaraxis", "TZMinimalist" },
    config = function()
      require "custom.configs.truezen" -- just an example path
    end,
  },

  -- 这里的opts会扩展默认的opts
  {
    "nvim-treesitter/nvim-treesitter",
    opts = {
      ensure_installed = {"html", "css", "bash"},
    },
  },

  -- 如果您想在opts中加载某些函数或者模块,可以使用函数进行包装
  {
   "nvim-telescope/telescope.nvim",
   opts = {
     defaults = {
       mappings = {
         i = {
           ["<esc>"] = function(...)
               require("telescope.actions").close(...)
            end,
          },
        },
      },
    },
   },

   {
     "folke/which-key.nvim",
     enabled = false,
   }

}

return plugins

Powered by VitePress