kmkkiii.com

MiniMax で始める、読んで育てる Neovim 設定

🔰

この記事は Vim駅伝 2026-05-27 担当分の記事です。

Vim駅伝は常に参加者を募集しています。詳しくはこちらのページご覧ください。

MiniMax とは

Mini と Max という対義語を並べた名前、なんかいいですよね。

MiniMax と聞くと LLM を思い浮かべる方もいるかもしれませんが、この記事で扱う MiniMax は、mini.nvimベースとした Neovim の設定ジェネレーターを指します。

LazyVim や AstroNvim、NvChad といった、いわゆる Neovim ディストリビューションとは異なる立ち位置のプロジェクトで、生成された設定を読み、自分で育てていくような使い方が想定されています。

似たようなプロジェクトとしては、kickstart.nvimあります。

この記事では、Vim/Neovim の基本操作そのものは詳しく扱わず、MiniMax が生成する設定を読みながら Neovim 設定に入門することを目指します。

MiniMax の始め方

Neovim のインストール

何はともあれ Neovim をインストールします。 執筆時点での stable は 0.12.2 です。

MiniMax プロジェクトのクローン

MiniMax プロジェクトをクローンします。

# git clone の場合
git clone --filter=blob:none https://github.com/nvim-mini/MiniMax ./MiniMax

# ghq の場合
ghq get --partial blobless https://github.com/nvim-mini/MiniMax

セットアップ

NVIM_APPNAME=foo指定すると、通常の $XDG_CONFIG_HOME/nvim ではなく $XDG_CONFIG_HOME/foo見に行きます。

既存の Neovim 設定を変更しなくて済むので、気軽に試してみてください。

MiniMax は Neovim のバージョンに合わせて適切な設定を生成してくれます。

# git clone した場合
NVIM_APPNAME=nvim-minimax nvim -l ./MiniMax/setup.lua

# ghq の場合
NVIM_APPNAME=nvim-minimax nvim -l "$(ghq list -p nvim-mini/MiniMax)/setup.lua"

設定が生成できたら、NVIM_APPNAME付けて起動します。

NVIM_APPNAME=nvim-minimax nvim

初回起動時には、プラグインのインストール確認が表示されるので y押します。

通知が落ち着くまで待てばセットアップ完了です。

MiniMax の構成

生成された設定の中身を見てみましょう。~/.config/nvim-minimax/次のような構成になっています。

※ 以下は Neovim 0.12 の場合の構成です。

~/.config/nvim-minimax/
├── init.lua              -- 最初に実行されるファイル
├── nvim-pack-lock.json   -- vim.pack のロックファイル
├── plugin/
│   ├── 10_options.lua    -- vim.opt 系の基本オプション
│   ├── 20_keymaps.lua    -- Leader キー周りとマッピング
│   ├── 30_mini.lua       -- mini.* モジュールのセットアップ
│   └── 40_plugins.lua    -- mini 以外のプラグイン定義
├── snippets/
└── after/

vim.pack について

Neovim 0.12 では、vim.packいうビルトインのプラグインマネージャーが追加されました。

MiniMax では、vim.pack実践的な設定を知ることができるため、すでに Neovim をお使いの方にも参考になるかと思います。

vim.pack実装したのは、mini.nvim MiniMax の作者である Evgeni Chasnovski 氏です。

vim.pack は、同氏が開発していた mini.deps設計を土台にしつつ、Neovim 本体に組み込むために、よりシンプルで保守しやすい形へ再設計されています。

プラグイン管理は vim.pack.add()中心とした最小限の API にまとまっており、mini.deps得られた知見を踏まえ、手動のスナップショットではなく、自動生成されるロックファイル(nvim-pack-lock.json)が採用されています。

詳しくは作者による vim.pack ガイドをご覧ください。

読む

Neovim を起動すると mini.starterよる起動画面が表示されます。

ここから各設定ファイルを読んでいきましょう。 まずは入口となる init.lua開くために以下を入力します。

<Space> + e + i

<Space> Leader キーに設定されています。押すと、次に押せるキーの候補を右下に表示してくれる mini.clue起動します。 詳しくは、plugin/10_options.lua plugin/20_keymaps.lua設定されているので後で読んでみましょう。

英語が不得手な方は、AI を活用して読んでもらうか、 手前味噌ですが、fork して README設定ファイルのコメントを日本語に翻訳したブランチがあるので、こちらを見てもらえるとよいかもしれません。

init.lua

mini.nvimいう設定のコアとなるプラグインをここで読み込んでいます。

mini.nvimオールインワンのプラグインで、この設定で有効化されているモジュールだけでも 30 を超える様々な便利機能が使える優れものです。

あわせて、Config.now() / Config.later()いった「いつ読み込むか」を制御するヘルパーもここで定義しています。 (lazy.nvim の event / ft のような)トリガー起点で読みたい場合は Config.on_event() / Config.on_filetype()用意されています。

各機能の実体は plugin/ 以下に分かれているので、init.lua 自体は薄くなっています。

plugin

設定の本体はここに集まっています。

一般的な Neovim 設定では lua/ 配下に設定を分けることも多いですが、MiniMax では Neovim が plugin/ 配下を辞書順に自動読み込みすることを活用して、init.lua薄く保っています。

これによって、Lua の名前空間を占有せず、require()不要になる点がメリットとして挙げられています。

  • 10_options.lua
    • vim.opt 系の基本オプションと Leader キー(<Space>)の設定
  • 20_keymaps.lua
    • <Leader>f=検索 / g=Git / l=LSP のようにグループ分けされたキーマップ
    • mini.clueガイド表示とも連携
  • 30_mini.lua
    • MiniMax の主役。30 を超える mini.* モジュールをセットアップ
  • 40_plugins.lua
    • mini 以外(nvim-treesitternvim-lspconfigconform.nvimfriendly-snippets)を vim.pack.add()追加

<Space>押して f / g / l辿ると、20_keymaps.lua定義したキーマップが実際の動作として確認できます。

snippets

snippets/ mini.snippets読みに行くディレクトリで、VSCode 形式の JSON でスニペットを定義します。

MiniMax の global.json には日付・時刻を挿入するスニペットが入っており、friendly-snippets組み合わせて使われます。

自分用のスニペットを足したくなったときの入口になっています。

after

after/ Neovim 標準の仕組みで、設定の最後に読み込まれます。

MiniMax では主に次のファイルが置かれています。

  • after/lsp/lua_ls.lua
    • Neovim 0.12 の vim.lsp.config式による言語サーバーの個別設定。サーバーごとにファイルを分けられます
  • after/ftplugin/markdown.lua
    • ファイルタイプ別の設定
  • after/snippets/lua.json
    • 言語別のスニペット

LSP の設定をいじりたくなったら、40_plugins.lua vim.lsp.enable()あわせて、この after/lsp/見るのが入口になります。

動かす

設定を眺めたあとは、実際に手を動かすために次のあたりを試してみましょう。

  • <Space>ff
    • ファイル検索(mini.pick)
  • <Space>fg
    • grep 検索(mini.pick)
  • <Space>ed
    • ファイルエクスプローラー(mini.files)
  • gc
    • コメントの切り替え(mini.comment)
  • saiw)
    • カーソル下の単語を ()囲む(mini.surround)

どれも <Space>押せば mini.clue次の候補を出してくれるので、キーを覚えていなくても辿っていけます。

育てる

MiniMax で Neovim が気に入ったら以下を参考にして設定を育てていきましょう。

Neovim をはじめよう feat. mini.nvim

mini.nvim Neovim に入門する本です。

Vim の基本操作から mini.nvim モジュールの紹介・設定まで、無料で読めてしまっていいんですか…というくらい、丁寧な解説とボリュームになっています。

dotfiles 探訪

dotfiles リポジトリを見に行き、どんなプラグインを使っているか、設定をどのように書いているか参考にさせてもらいましょう。

おわりに

Neovim ディストリビューションを使ったり、AI に設定を書いてもらうのも手軽でいいですが、自分が理解できる範囲から小さく始めて、少しずつ育てていくのも楽しいものです。

その出発点として、MiniMax はピッタリだと思います。