[[lazy.nvim]]で読み込みプラグインの設定を[[Lua]]ファイルに分解する方法。[[Structured Setup (lazy.nvim)|Structured Setup]] と呼ばれている。 ## ディレクトリとLuaファイルの作成 `plugins` のようなディレクトリを作成し、配下に `*.lua` 形式でプラグイン設定を記載していく。以下は一例。 `lua` ```lua  plugins ├──  quicker.lua └──  tokyonight.lua ``` `plugins/quicker.lua` ```lua -- 設定などが必要なら書く return { "stevearc/quicker.nvim", event = "FileType qf", opts = {}, } ``` `plugins/tokyonight.lua` ```lua -- 設定など不要な名称のみ return { "folke/tokyonight.nvim", } ``` ## プラグインディレクトリを指定 [[lazy.nvim]]の `setup` で `spec.import` にプラグインディレクトリを指定する。 ```lua require("lazy").setup({ spec = { -- pluginsディレクトリ配下をすべて読み込む { import = "plugins" }, }, }) ``` ## ハイライト設定 [[nvim_set_hl]]の指定は `init` にて `ColorScheme`の[[autocmd (Neovim)|autocmd]]で定義する。 ```lua -- flash.nvimの例 return { "folke/flash.nvim", event = "VeryLazy", init = function() vim.api.nvim_create_autocmd("ColorScheme", { callback = function() vim.api.nvim_set_hl(0, "FlashLabel", { fg = "#efef33", bold = true }) vim.api.nvim_set_hl(0, "FlashMatch", { fg = "#3d59a1", bold = true }) end, }) end, } ``` `init` は[[lazy.nvim]]の設定ロード時に実行されるため、[[lazy.nvim]]の後に[[Tokyo Night (Neovim)|Tokyo Night]]のような[[カラースキーマの設定 (Vim)|カラースキーマの設定]]をしていれば、[[カラースキーマ (Vim)|カラースキーマ]]が設定されたタイミングで自動的に `init` 内の[[カラースキーマ (Vim)|カラースキーマ]]で上書きされる。 > [!caution] > `init` ではなく `config` に設定した場合は期待通り動作しない。`config` はプラグインのロード後に実行されるが、そのタイミングでは遅いのかもしれない...? ## 参考 - [🛠️ Installation \| lazy\.nvim](https://lazy.folke.io/installation)