メインコンテンツへスキップ
  1. ノート/
  2. Vim / Neovim/

LazyVim plugins

·2413 文字·5 分· loading · loading · · ·
ICE345
著者
ICE345
CS Student | System | Linux | OCaml
この記事は中国語版をもとにした日本語版メモです。コマンド、コード、数式、画像リンクは原文の意味を壊さないように保持し、説明文と見出しを日本語向けに整理しています。

如何在 LazyVim 中設定插件?
#

LazyVim 使用 lazy.nvim 作为插件管理器,允许以模块化和灵活的方式定义和設定插件。要設定插件,您必要作成或変更 Lua ファイル来指定要インストール的插件及其设置和加载条件。这些ファイル通常位于 LazyVim 設定的 lua/plugins/ ディレクトリ中。

每个插件設定都写作一个 Lua 表,包含插件的リポジトリ地址、依赖项、設定函数以及加载条件(如立即加载或在特定事件/按键时延迟加载)。LazyVim 的 lazy.nvim 设置(通常在 lua/config/lazy.lua 中定义)会自动发现并加载这些插件設定。

設定插件的手順:
#

  1. lua/plugins/ 中作成或変更ファイル:通过在此ディレクトリ中作成新的 .lua ファイル或编辑现有ファイル来追加插件。
  2. 定义插件规格:返回一个表(或表列表)来指定插件详细信息。
  3. 保存ファイル:保存后,lazy.nvim 会根据您的設定自动管理插件。

插件設定ファイル保存在哪里?
#

根据您的ディレクトリ结构:

.
├── init.lua
├── lazy-lock.json
├── lazyvim.json
├── LICENSE
├── lua
│ ├── config
│ │ ├── autocmds.lua
│ │ ├── keymaps.lua
│ │ ├── lazy.lua
│ │ ├── options.lua
│ │ └── plugins.lua
│ └── plugins
│     ├── example.lua
│     ├── nvim-cmp.lua
│     ├── nvim-tree.lua
│     └── treesistter.lua
├── README.md
└── stylua.toml

插件設定ファイル保存在 lua/plugins/ ディレクトリ中。该ディレクトリ中的每个ファイル(如 nvim-cmp.luanvim-tree.luatreesistter.luaexample.lua)通常定义一个或多个插件。たとえば:

  • nvim-cmp.lua 可能設定 nvim-cmp 自动补全插件
  • nvim-tree.lua 設定 nvim-tree ファイル管理器
  • treesistter.lua(可能是 treesitter.lua 的拼写错误)可能設定 nvim-treesitter

这些ファイル会被 lazy.nvim 自动加载,由 lua/config/lazy.lua ファイル统筹管理(该ファイル会导入 lua/plugins/ 的所有模块)。

注意:您的结构中包含 lua/config/plugins.lua,这不是 LazyVim 的默认設定。通常插件設定应放在 lua/plugins/,而 lua/config/ 存放通用設定ファイル(如 lazy.luaoptions.lua 等)。除非 lua/config/plugins.lua 被显式导入,否则默认不会使用。建议遵循 LazyVim 惯例,将插件設定放在 lua/plugins/


详细例:設定 telescope.nvim 插件
#

以追加强大的模糊搜索插件 nvim-telescope/telescope.nvim 为例:

手順 1:作成新ファイル
#

lua/plugins/ 中作成 telescope.lua ファイル(パス:~/.config/nvim/lua/plugins/telescope.lua)。

手順 2:定义插件规格
#

将以下内容追加到 lua/plugins/telescope.lua

return {
  {
    "nvim-telescope/telescope.nvim",
    -- 指定依赖项
    dependencies = { "nvim-lua/plenary.nvim" },
    -- 插件加载后运行的配置函数
    config = function()
      require("telescope").setup({
        defaults = {
          -- 自定义Telescope行为
          layout_strategy = "horizontal",
          layout_config = {
            prompt_position = "top",
          },
          sorting_strategy = "ascending",
        },
        pickers = {
          find_files = {
            hidden = true, -- 显示隐藏文件
          },
        },
      })
    end,
    -- 定义触发插件加载的快捷键
    keys = {
      { "<leader>ff", "<cmd>Telescope find_files<cr>", desc = "查找文件" },
      { "<leader>fg", "<cmd>Telescope live_grep<cr>", desc = "实时搜索" },
    },
    -- 当执行Telescope命令时加载插件
    cmd = { "Telescope" },
  },
}

設定详解:
#

  • nvim-telescope/telescope.nvim:插件的 GitHub リポジトリ
  • dependencies:Telescope 必要 plenary.nvim 作为依赖
  • config:插件加载后调用的設定函数,设置布局策略和显示隐藏ファイル
  • keys:定义快捷键 <leader>ff(查找ファイル)和 <leader>fg(实时搜索)
  • cmd:実行 :Telescope コマンド时加载插件

手順 3:保存并同步
#

保存ファイル后,在 Neovim 中実行 :Lazy 并选择 “Sync”(或重启 Neovim)来インストール插件。LazyVim 会自动处理下载和設定。


如何使用这些插件?
#

lua/plugins/ 中設定插件后,lazy.nvim 会根据您指定的条件(如 lazy = falsekeyscmdevent)管理加载。使用方式以下:

  1. 自动功能:许多插件加载后即用。たとえば:

    • 設定 telescope.nvim 后,按 <leader>ff 即可打开ファイル搜索
    • nvim-cmp.lua 設定后会在插入模式自动激活补全
  2. コマンド:插件常提供コマンド。たとえば Telescope 的 :Telescope find_files,設定中的 cmd = { "Telescope" } 确保执行コマンド时加载插件

  3. 快捷键:使用插件规格中定义的快捷键(如 <leader>ff),或在 lua/config/keymaps.lua 追加自定义快捷键:

    vim.keymap.set("n", "<leader>ff", "<cmd>Telescope find_files<cr>", { desc = "查找文件" })
  4. 插件文档:通过 :help 插件名(如 :help telescope)確認具体用法

延迟加载注意事项:
#

  • 默认插件会延迟加载(按需加载)以加快启动速度
  • 在 Telescope 例中,插件会在按下 <leader>ff 或実行 :Telescope 时加载。如需立即加载,可在规格中追加 lazy = false

必要在其他設定ファイル中加载插件吗?
#

通常不必要lua/plugins/ 中的插件設定会被 lazy.nvim 自动加载(通过 lua/config/lazy.lua 的设置,通常包含):

require("lazy").setup({
  spec = {
    { import = "plugins" }, -- 导入 lua/plugins/ 所有文件
  },
  -- 其他性能设置等
})

这意味着您无需在 init.luaoptions.luakeymaps.lua 中手动加载插件。但以下情况需注意:

  1. keymaps.lua 定义快捷键

    • もし在 keymaps.lua 中定义依赖插件的快捷键(如 <leader>ff),lazy.nvim 会在按键时通过 cmdkeys 设置自动加载插件
    • 例:在 keymaps.lua 追加 Telescope 快捷键仍会正常触发加载
  2. 选项或自动コマンド

    • もし插件必要 Neovim 选项或自动コマンド(如设置 vim.g.some_option),建议将設定放在插件的 config 函数中
    • 或放在 lua/config/options.lua/autocmds.lua,但需确保插件已加载(如设置 lazy = false
  3. 插件间依赖

    • 在插件规格中使用 dependencies 字段确保先加载依赖项

例:設定 nvim-tree 的快捷键
#

lua/plugins/nvim-tree.lua 中:

return {
  {
    "kyazdani42/nvim-tree.lua",
    dependencies = { "kyazdani42/nvim-web-devicons" },
    config = function()
      require("nvim-tree").setup({
        view = { width = 30 },
      })
    end,
    keys = {
      { "<leader>e", "<cmd>NvimTreeToggle<cr>", desc = "切换文件树" },
    },
  },
}

按下 <leader>e 时会加载插件,无需在其他地方额外設定。


まとめ
#

  • 設定插件:在 lua/plugins/ 中追加/変更 .lua ファイル,返回包含插件详情的表
  • 設定ファイル位置:保存在 lua/plugins/(如 telescope.lua
  • 使用插件:通过コマンド、快捷键或插件自动功能访问
  • 其他ファイル加载:一般不必要,lazy.nvim 通过 lazy.lua 自动管理。如需在快捷键/选项中引用插件,确保設定加载顺序