mini.nvim 探訪 Day 1: 直感的なファイル操作を実現する mini.files

mini.nvim 探訪 Day 1: 直感的なファイル操作を実現する mini.files

作成日:
更新日:

こんにちは! Neovimのプラグイン構成、複雑になりがちですよね。

「機能は欲しいけど、重厚長大なプラグインは入れたくない…」 「設定が複雑すぎてメンテナンスできない…」

そんな悩みを解決してくれるのが、mini.nvim です。

mini.nvim とは?

mini.nvim は、40以上の独立したLuaモジュールを集めたライブラリです。 それぞれのモジュールは「単機能」「軽量」「最小限の設定」という哲学で作られており、必要なものだけをピックアップして使うことができます。

今日から、この素晴らしい mini.nvim のモジュールを1つずつ紹介していくシリーズを始めます!

記念すべきDay 1は、ファイルエクスプローラー mini.files です。

mini.files とは

mini.files は、Millerカラム(Miller columns) 方式を採用したファイルエクスプローラーです。 macOSのFinderの「カラム表示」のようなUIで、ディレクトリ階層を横に並べて表示します。

しかし、ただのファイラーではありません。最大の特徴はこれです:

「ファイルシステムを、テキストバッファのように編集できる」

どういうことかというと、表示されているファイル名を書き換えて保存するだけでリネームができたり、行を削除すればファイルが削除されたりするのです。 oil.nvim に似ていますが、カラム表示による階層移動のしやすさが魅力です。

インストール

lazy.nvim を使用している場合のインストール例です。 mini.nvim 全体をインストールして必要なモジュールだけ読み込む方法と、個別のライブラリとしてインストールする方法がありますが、ここでは mini.nvim パッケージとして導入します。

return {
  {
    "echasnovski/mini.nvim",
    version = false,
    config = function()
      -- ここに必要なモジュールのsetup記述を追加していきます
      require("mini.files").setup()
    end,
  },
}

個別に導入したい場合はこちら:

return {
  {
    "echasnovski/mini.files",
    version = false,
    config = function()
      require("mini.files").setup()
    end,
  },
}

設定例

mini.files はデフォルトで十分使いやすいです。githubのreadmeを参考に設定を記述します。

require("mini.files").setup({
  -- ウィンドウの設定
  windows = {
    preview = true, -- ファイルのプレビューを表示するか
    width_focus = 30, -- フォーカスされているカラムの幅
    width_preview = 50, -- プレビューの幅
  },
  
  -- キーマップの設定(デフォルトでも使いやすいですが明示的に)
  mappings = {
    close       = 'q',
    go_in       = 'l', -- 右へ移動(ディレクトリに入る/ファイルを開く)
    go_in_plus  = '<CR>', -- エンターでも開く
    go_out      = 'h', -- 左へ移動(親ディレクトリへ)
    go_out_plus = '-', -- マイナスキーでも親へ
    reset       = '<BS>', -- バックスペースでリセット
    reveal_cwd  = '@', -- カレントディレクトリを表示
    show_help   = 'g?', -- ヘルプ表示
    synchronize = '=', -- 編集を反映(保存)
    trim_left   = '<',
    trim_right  = '>',
  },
})

使い方:ファイル操作の革命

1. ナビゲーション

起動すると、カラムが表示されます。

  • j k : 上下移動
  • h l : 親ディレクトリ/子ディレクトリへ移動

Vimのカーソル移動そのままでディレクトリを渡り歩ける感覚は、一度味わうと病みつきになります。

2. ファイルの作成・リネーム・移動・削除

ここが mini.files の真骨頂です。

リネームしたいとき: 普通に cw (change word) などでファイル名を書き換えます。

ファイルを作成したいとき: o などで新しい行を作り、ファイル名を書きます。 ディレクトリを作りたい場合は、名前の最後に / を付けます(例: new_dir/)。

ファイルを移動したいとき: 行をヤンクやデリートして、移動先のディレクトリのカラムにペーストします。

削除したいとき: dd で行を消します。

変更の適用: 編集が終わったら、= キーを押すか、:w で保存します。 すると、確認ダイアログが出て、実際のファイルシステムに変更が反映されます。

なぜ mini.files なのか?

Neo-treeなどのツリー型エクスプローラーも素晴らしいですが、常にサイドバーに出しておくほどではない、というミニマリスト思考の方に mini.files は最適です。

  • 必要な時だけ呼ぶ: フローティングウィンドウでサッと作業して、終わったら消える。
  • Vimの操作感: ファイル操作に専用のキーバインドを覚える必要がなく、テキスト編集のスキルがそのまま使えます。
  • 視認性: カラム表示は、深い階層のディレクトリ構造を把握するのに非常に適しています。

ぜひ、あなたのNeovimライフに mini.files を取り入れてみてください。 きっと、「ファイル操作ってこんなに楽だったんだ」と驚くはずです。


次回 Day 2 は、テキスト編集を加速させる mini.ai を紹介する予定です。お楽しみに!