Vim の編集スタイルに慣れているなら、ターミナルでファイル管理をするときも同じキーバインドが使えたらと思ったことはないだろうか。

felix は Rust で書かれた TUI(ターミナルユーザーインターフェース)ファイルマネージャーで、コアとなる設計哲学は「Vim-like」。885 スターの背後にあるのは、機能が完備し、統一感のあるターミナルファイル管理ソリューションだ。

プロジェクト概要

  • リポジトリ: https://github.com/kyoheiu/felix
  • スター数: 885
  • 開発言語: Rust
  • 対応プラットフォーム: Linux、macOS、NetBSD(Windows は実験的サポート)

felix は「Vim キーバインドがある程度」という曖昧な実装ではない。キー操作、モード切り替え、レジスタシステムすべてが Vim の設計を厳密に踏襲している——Normal モード、Visual モード、コマンドラインモードが揃っている。

コア機能

完全な Vim キーバインド

j/k       上下移動
h/l       ディレクトリの出入り
gg/G      先頭/末尾にジャンプ
<C-d>/<C-u>  半ページスクロール
v         Visual モード(一括選択)
/         検索
dd/yy/p   削除/コピー/ペースト
u/<C-r>   取り消し/やり直し

この設計により、Vim ユーザーは学習コストゼロで使い始められる。

マルチレジスタクリップボード

felix は Vim スタイルのレジスタシステムをサポートする:

"ayy     レジスタ a にコピー
"add     削除してレジスタ a に保存
"ap      レジスタ a からペースト
:reg     全レジスタ内容を表示

これにより複数のファイルセットを同時に保持し、必要に応じてペーストできる。通常のクリップボードより圧倒的に効率的だ。

ファイルプレビュー

v キーでプレビューモードを有効化:

  • テキストファイル:内容を直接表示
  • 画像:chafa と組み合わせてターミナルでプレビュー可能
  • ディレクトリ:ファイル一覧を表示

プレビュー領域は垂直/水平分割を切り替え可能(s キー)、スクロールも可能(Alt+j/k)。

実用的な統合

felix は以下のツールとシームレスに連携できる:

ツール役割
zoxideスマートディレクトリジャンプ、z キーワード で瞬時に移動
chafaターミナル画像プレビュー
batコードハイライト付きプレビュー

これらのツールは追加設定不要、インストールするだけで機能する。

その他のハイライト

  • 一括リネーム: Visual モードで c を押すと、デフォルトエディタで選択ファイル一覧が開く。一括編集後に保存するだけ
  • Trash 機能: 削除したファイルは Trash ディレクトリに入る。復元や完全削除がいつでも可能(:trash / :empty
  • 終了時にディレクトリ保持: 最後にいたディレクトリに戻る機能あり。shell 統合が必要
  • Undo/Redo: 削除、ペースト、リネームすべて取り消し可能

インストール

# crates.io
cargo install felix

# Arch Linux
pacman -S felix-rs

# ソースからインストール
git clone https://github.com/kyoheiu/felix.git
cd felix
cargo install --path .

注意:Rust バージョンは 1.78.0 以上が必要

終了時ディレクトリ保持を有効化

.bashrc または .zshrc に以下を追加:

source <(command fx --init)

これで felix 終了時に最後のディレクトリに自動的に cd される。

類似ツールとの比較

ツールスター特徴
yazi35k+機能が最も豊富だが学習曲線が急
joshuto3.7kranger 風、Rust 実装
felix885Vim 純血統、軽量シンプル

Vim の一貫性を極限まで追求するなら、felix は 3 つの中で最も純粋な選択だ。

まとめ

felix の価値は「妥協のない Vim 体験」にある。すべてのユーザーを喜ばせようとせず、Vim キーバインドに浸かっているユーザーを徹底的にサポートすることに集中している。もしあなたがその類のユーザーなら、これは「帰る場所」を与えてくれるツールだ。

インストールは一行、まず試してみて:

cargo install felix && fx