lazy.nvimへの移行(プラグインマネージャの変更)

NeoVimのライトな使い方しかしていなかったせいか、特にここ1年問題もなくフツーに使えてた。

でも、プラグインの管理に使っていたPacker.nvimのメンテナンス終了のアナウンス。

github.com

NOTICE: This repository is currently unmaintained. For the time being (as of August, 2023), it is recommended to use one of the following plugin managers instead:

じゃあ、ちょうどいいからプラグインの管理プラグインを変更して、プラグインも見直してみようかと。 Packerがお勧めしているのはこの二つ。

lazy.nvim: Most stable and maintained plugin manager for Nvim.
pckr.nvim: Spiritual successor of packer.nvim. Functional but not as stable as lazy.nvim.

じゃあ安定性を優先してlazy.nvimに。
ちなみに、色々やるならdpp.vimが面白いのは間違いないと思う。 github.com

インストールと初期設定

Packerを使っていたときには、

  1. Packer自身のインストール
  2. どのプラグインをインストールするか、プラグイン一覧に記載
  3. プラグイン毎にファイルを作成

というやり方でやってた。

これがlazyになると、

  1. lazy.nvim のインストール(Packerより簡単。設定ファイルへの記載内容も少ない)
  2. プラグイン毎にファイルを作成したら、プラグインのインストールも最初に行ってくれる。

と、管理が楽になった。

一番最初の.config/nvimの中身はこれだけ

─nvim  
    │  init.lua  
    │  
    └─lua  
   001_core.lua  
   002_keymap.lua  
   100_lazy.lua  

init.luaはこれだけ

-- luaで作成
require('001_core')
require('002_keymap')
require('100_lazy')

001_coreと002_keymapの内容は

init.lua を作る - たまにはvim

からあまり変わってない。

肝心の100_lazy.luaはこんな感じ

local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "https://github.com/folke/lazy.nvim.git",
    "--branch=stable", -- latest stable release
    lazypath,
  })
end
vim.opt.rtp:prepend(lazypath)

require('lazy').setup('plugins', opts)

これは最後の行以外は、プラグインの説明ページを貼り付けただけ。
ちなみに、最初のほうに書いているのは、決まったフォルダにlazy.nvimがあるかをチェックして
lazy.nvimがなかったらgit cloneコマンドでlazy.nvimをとってくるという内容
プラグインの保管場所は「vim.fn.stdpath("data") .. "/lazy/lazy.nvim"」ということ
これがどこかを調べたいならコマンドラインモードで

:lua print(vim.fn.stdpath("data"))

でチェックすることができる

100_lazy.luaの最後に記載した「plugins」がプラグインの設定ファイル名plugins.luaを使いますという意味になるみたい。
これをpluginsというフォルダにすることで、1プラグイン1ファイルで設定していくことが可能になる。
試しにカラースキームのKanagawaをインストールするとこんな感じ

└─nvim
    │  init.lua
    │
    └─lua
        │  001_core.lua
        │  002_keymap.lua
        │  100_lazy.lua
        │
        └─plugins
                kanagawa.lua

ちなみに配布元はこちら

github.com

このプラグインをインストールするときに「100_lazy.lua」にはなにも記載していない。
kanagawa.luaはこんな感じ

return{
    'rebelot/kanagawa.nvim',
    event = "VimEnter",
    config = function()
        vim.cmd.colorscheme "kanagawa"
    end,
}

設定ファイルは「return{」で始まって「}」で終わる 最初にどこからダウンロードするか?githubだとこの書き方でOK
次はどのタイミングでプラグインを読み込むか?
lazy.nvimはプラグインを読み込むタイミングを遅らせることで、neovim本体の起動時間を早めることができる
今回はvimを開いたときなので「event="VimEnter"」になる。タイミングは色々あるので、配布元のページを確認したほうがいい。 最後にconfigの行で、プラグインを使ってなにをするのかやkeymapをここに書いていく。
書き方がいくつかあるみたいなので、統一した書き方ができるようにしておきたい。

この状態でNeovimを再起動したら、プラグインのインストール画面が最初に自動で起動する。
qキーでインストール画面が閉じられて、今回はKanagawaのカラースキームが設定されて表示された。