mini.depsが初心者にも扱いやすいのではないかという提案
この記事はVim駅伝2024年3月29日(金)の記事です。
前回の記事は tadashi-aikawaさんの「📘あまり紹介されていないけど かけがえのないNeovimプラグインたち - Minerva」という記事でした。
次回の記事は 4月1日(月) に投稿される予定です。
はじめに
タイトルの通りです。
初心者向けのNeovimのプラグインマネージャーとしてよく選択肢に上がるのはこの2つだと思います。
- VimPlug
- Lazy.nvim
その中にmini.depsも加えてもよいのではないかと思い記事を書くことにしました。
mini.depsのレポジトリはこちらです。
mini.depsが合うであろう人
- 最低限の機能を持ったlua製プラグインマネージャーを探している
- 遅延について詳しくない/遅延読み込みする気があまりない
mini.depsとは
プラグインマネージャーです。
mini.nvimという小さなプラグインが沢山集まっているプラグイン集の一つで先月公開された新作です。
mini.depsの特徴
シンプルで軽量
mini.depsはシンプルで軽量なプラグインマネージャーです。必要最低限の機能に絞られているため、設定方法に悩むことなく使い始めることができます。
導入が簡単
Lazy.nvimと同様に、インストールするためのLuaコードが提供されています。初心者でもinit.lua
にコードを貼り付けるだけで導入できる点が嬉しいポイントです。具体的には、以下のコードをinit.lua
の先頭付近に貼り付けてNeovimを再起動するだけで使い始められます。
local path_package = vim.fn.stdpath('data') .. '/site/'
local mini_path = path_package .. 'pack/deps/start/mini.deps'
-- mini.depsだけではなくてmini.nvimを入れたい場合はこっち↓
-- local mini_path = path_package .. 'pack/deps/start/mini.nvim'
if not vim.loop.fs_stat(mini_path) then
vim.cmd('echo "Installing `mini.deps`" | redraw')
local clone_cmd = {
'git', 'clone', '--filter=blob:none',
'https://github.com/echasnovski/mini.deps', mini_path
}
vim.fn.system(clone_cmd)
vim.cmd('packadd mini.deps | helptags ALL')
vim.cmd('echo "Installed `mini.deps`" | redraw')
end
require('mini.deps').setup({ path = { package = path_package } })
シンプルな遅延
mini.depsでは、遅延読み込みのためにMiniDeps.now()
とMiniDeps.later()
の2つの関数が用意されています。しかし、MiniDeps.now()
は安全に呼び出すだけなのでもはや遅延ではなく、実質のところ遅延読み込みさせたい場合に使う関数はMiniDeps.later()
のみです。
使い分けとしてはMiniDeps.now()
には起動直後に読み込みたいプラグインを、MiniDeps.later()
には起動直後じゃなくてもいいプラグインを指定します。
作者のnvimの設定が公開されている
これは結構大きいです。mini.nvimの作者がmini.depsを使った設定ファイルを公開しています。これを見ることで実際の使い方を知ることができる点も良いところです。
https://github.com/echasnovski/nvim/blob/a3916554cb3cada94b7c4a1f7a1c4d6ab4e8b558/init.lua
まとめ
mini.depsは、Neovimを触り始めたばかりの初心者にもおすすめできるシンプルで扱いやすいプラグインマネージャーです。
mini.depsはいいぞ