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

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

作成日:
読了:5
更新日:
この記事を読む人におすすめPR / Amazonアソシエイト

当サイトは Amazon.co.jp を宣伝しリンクすることで紹介料を得る手段を提供する、Amazonアソシエイト・プログラムの参加者です。価格・在庫はリンク先の最新情報をご確認ください。

こんにちは! 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 パッケージとして導入します。

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

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

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

設定例

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

Lua
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 は、Git 差分をエディタ内で可視化する mini.diff を紹介します。

vim-dungeons を公開 - Neovim の中だけで遊ぶ「不思議のダンジョン」風ローグライクを Lua で作った

vim-dungeons を公開 - Neovim の中だけで遊ぶ「不思議のダンジョン」風ローグライクを Lua で作った

9

Neovim のバッファ上で完結する不思議のダンジョン(トルネコ・シレン)風のローグライク vim-dungeons を公開しました。hjkl で自動生成ダンジョンを潜り、ターン制で戦い、未識別の巻物や腕輪を店の値段で見分け、地下10階の「Vimの聖典」を目指します。目玉は Vim 由来のギミック - f の巻物(指定文字までワープ)、:g//d の巻物(視界内の敵を一掃)、:w! の巻物(装備を上書き強化して呪いを消す)。純 Lua 実装の構成、手続き的なフロア生成、視界計算、識別システム、ヘッドレステストと BFS オートプレイによるバランス測定まで、作ったものと設計を紹介します。