はじめに
neovimのプラグインマネージャって色々ありますが、最近だとlazyってやつが有力らしいですね。
というのもここ最近まで有名だったpackerってプラグインマネージャがメンテナンスされなくなったらしく、その影響もあって今lazyが熱いようです。
そこで私もpackerからlazyに移行したのですが、その時の移行手順を紹介したいと思います。
移行手順
では実際に移行手順のご紹介です。
先に筆者のneovim設定ファイルを晒しておきます。適宜ご参考ください。
ちなみにpackerからlazyに移行したコミットは1825dc9f
です。
さてまずはlazyのディレクトリ構成について紹介します。
lazyは以下のような構成を取ることが多いです。以下は筆者のディレクトリ構成です。
lua/
|- settings/
| |- core/
| | |- init.lua
| | |- keymaps.lua
| | |_ options.lua
| |- plugins/
| |_ lazy.lua
|- init.lua
|_ lazy-lock.json
まずはlua/init.lua
からです。
require("settings.core")
require("settings.lazy")
settings
ディレクトリのモジュールを読み込んでいます。
core
フォルダにはkeymapやoptionsなどのnvim全般の設定を記述しています。
lazy.lua
は以下のようになっています。最後の行以外はlazyのgithubからコピペしただけです。
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({ { import = "settings.plugins" }, { import = "settings.plugins.lsp" } })
最後の行でプラグインディレクトリをimportしています。
筆者はlspのプラグインをサブディレクトリで管理しているので、2つimportしてます。(暗黙的にサブディレクトリも見てくれることはないみたいです)
で、あとはプラグインディレクトリとしてimportしたディレクトリにファイルを追加していくだけです。
プラグインファイルの記述について
上記のディレクトリ構成の場合、プラグインファイルは必ずobjectをreturnする必要があります。1
noiceというプラグインファイルを掲示します。
return {
"folke/noice.nvim",
dependencies = {
"MunifTanjim/nui.nvim",
"rcarriga/nvim-notify",
},
opts = {
routes = {
{
filter = { event = "notify", find = "No information available" },
opts = { skip = true },
},
},
presets = {
inc_rename = true,
lsp_doc_border = true,
},
},
}
このようにreturn { }
の形式で記述していくことになります。
よく使うプロパティは以下です。
プロパティ | 説明 |
---|---|
[1] | githubのurlを記述します。localにあるプラグインを読み込む場合を除いて必須の項目です。 |
dependencies | 依存プラグインを記述します。packerでいうrequires です。 |
event2 | プラグインのloadタイミングを指定できます。例えばInsertEnter と指定すると、インサートモードに入った時に初めてプラグインがloadされます。 |
opts | プラグインの設定を記述します。packerでrequire("foo_module").setup({}) の中に書いていた内容をそのまま記述できます。 |
config | たまにsetup の中で関数を使ったりしないといけない設定がありますが、そのためのプロパティです。config = function() と書いて、下に設定内容を書いていきます。 |
で、実際の移行手順ですが、基本的には以下の流れでlazy用の構成に組み直せば問題ないかと思います。
-
init.lua
でlazy.lua
を読み込む -
lazy.lua
でlazyのセットアップスクリプトをコピペして、プラグインディレクトリをimportする - プラグインディレクトリに
use
でinstallしていたプラグインたちをファイル分割して入れていく
移行が完了すると、neovimを起動した時にlazyとその他プラグインのinstallが走ります。
packerも似たようなUIありますが、lazyの方が若干モダンな感じがして気持ちいです。
最後に
packerからlazy移行しないとな〜と一生思ってる方の助けになれば幸いです。。
それでは良いvimライフを!!!