輪ごむの空き箱

mini.depsが初心者にも扱いやすいのではないかという提案


この記事はVim駅伝2024年3月29日(金)の記事です。

前回の記事は tadashi-aikawa さんの「📘あまり紹介されていないけど かけがえのないNeovimプラグインたち - Minerva」という記事でした。

次回の記事は 4月1日(月) に投稿される予定です。


はじめに

タイトルの通りです。
初心者向けのNeovimのプラグインマネージャーとしてよく選択肢に上がるのはこの2つだと思います。

その中にmini.depsも加えてもよいのではないかと思い記事を書くことにしました。

mini.depsのレポジトリはこちらです。

GitHub - echasnovski/mini.deps: Plugin manager. Part of 'mini.nvim' library. Plugin manager. Part of 'mini.nvim' library. . Contribute to echasnovski/mini.deps development by cr...
ogp

mini.depsが合うであろう人

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はいいぞ