Rustで開発されたファイルマネージャーのfelixが注目を集めています。felixとはターミナル上で高速で軽快に動くファイルマネージャーです。vimとの親和性が高く、ターミナル上で作業することの多いエンジニアに役立つツールです。本稿ではファイルマネージャーの定番を振り返りつつfelixについて紹介します。

TUIファイルマネージャーの定番3本をおさらい

ファイルマネージャーとは、その名が示すとおり、ファイル管理するためのソフトウェアのことです。ファイルの一覧画面から任意のファイルを開いたり、コピーしたり削除したりする機能を備えています。Windowsで言えばOS標準のエクスプローラーがこれに相当します。

Windows以前のMS-DOS時代から、さまざまな形態のファイルマネージャーが存在しました。Windows以降はOS標準のものを使うことが増えましたが、GUIが使えない制限された環境や、普段からターミナル上で作業することの多いエンジニアは、テキストベースのファイルマネージャーを愛用してきました。

ちなみに、TUI (Text-based User Interface)とは、テキストを使用したインターフェースのことです。GUIが普及する以前に利用されていたインターフェイスで、グラフィカルな要素をテキストを用いて表現します。

これまで、ターミナル上で動作する定番のファイルマネージャーと言えば、ranger、nnn、Midnight Commanderなどでした。いずれも、ターミナル上でのファイル操作を改善する上で、便利な機能をたくさん備えています。簡単に少し振り返ってみましょう。

まず、「Midnight Commander(mc)」です。これは、DOS時代から使われてきた伝統的なファイルマネージャーの系譜を引くツールです。基本的に、左右に分かれた2つのパネルを持ち、それぞれにディレクトリとファイルの一覧が表示されます。それで、タブキーを使って左右のパネルを行き来しながら、ファイル操作を行うものになっています。

  • 伝統的なファイルマネージャーの系譜を引くMidnight Commander

    伝統的なファイルマネージャーの系譜を引くMidnight Commander

次に、Pythonで開発されている「Ranger」を見てみましょう。このファイルマネージャーはコマンドラインエディタのvimのようなキー操作で軽快にファイル処理を行うことが可能です。ファイル検索やインクリメンタル検索を備えているだけでなく、タブで操作対象を切り替える機能や、ブックマークの機能など、便利な機能をたくさん備えています。macOSのFinderに近い画面構成となっており、ディレクトリの往来がスムーズです。

  • ファイルマネージャーの定番Rangerを使っているところ

    ファイルマネージャーの定番Rangerを使っているところ

そして、「nnn」はC言語で記述されたとにかくシンプルなファイルマネージャーです。必要最低限の機能のみを備えており、必要な機能はプラグインで追加できるようになっています。画面上部にフルパスが表示されおり、矢印キーなどを利用してディレクトリ間を移動します。

  • シンプルで必要最低限の機能を持った定番nnnを使っているところ

    シンプルで必要最低限の機能を持った定番nnnを使っているところ

felixについて

そして、群雄割拠するファイルマネージャー界に登場したのが、felixです。Rustで開発されているオープンソース(MITライセンスを採用)のプロジェクトです。GitHubでソースコードが公開されています。

  • GitHubのFelix開発頁

    GitHubのFelix開発頁

最初のバージョン0.1.2がリリースされたのが2021年10月という比較的新しいツールですが、今年の夏に怒濤のバージョンアップが行われ、本稿執筆時の最新版は2.8.1です。マルチプラットフォーム対応しており、macOS/Linuxをはじめ多くのOSで動作します。(ただし、原稿執筆時点でWindowsでのサポートは限定的なので、Windowsの場合はWSLで利用すると良いでしょう。)

作者は日本人のkyoheiu氏で、技術ブログ(https://zenn.dev/kyoheiu)にfelixの紹介記事を書いています。それによると「Vimの基本的な操作感をファイルマネージャーとして再現すること」を目標にして開発したとのことです。また、「シンプルで高速」であることや「アプリを簡単に設定できること」にも拘っているそうです。