h j k l F5 キーバインドで選ぶ
CUIファイルマネージャー

(Windows・Vim・Emacs)

ターミナルでの作業が増えるにつれて、ファイル操作のたびにマウスへ手を伸ばす動作が、少しずつ気になり始めました。

そこで、ターミナル上で完結するCUIファイルマネージャーを実際に試してみることにしました。

関連記事

1. CUIファイルマネージャーとは何か

まず、用語を簡単に整理します。
CUIとは「Character User Interface」の略で、文字だけで操作する画面のことです。
GUIが机の上に並んだ書類を見る感覚だとすると、
CUIはコマンドで棚番号を指定して書類を取る感覚に近いです。

キーバインドで選ぶCUIファイルマネージャー Windows F5 F6 F8 2ペイン操作 Vim h j k l プレビュー重視 Emacs Ctrl + Meta 編集力活用 3つの文化から考える最適解 操作体系の違いが体験を左右する 自分の手の動きに合う道具を選ぶ

ファイルマネージャーは、ファイルを一覧して移動・コピー・削除などを行うツールです。
CUI版は、キーボード操作を前提に設計されています。
慣れると速いですが、最初は戸惑います。

  • Midnight Commander: LinuxとWindowsで動作。Norton Commanderクローン
  • Far Manager: Windows専用。プラグインエコシステムが充実
  • ranger: Python製。Vimライクなキーバインドと豊富なプレビュー
  • lf: Go言語製。軽量で単一バイナリ
  • nnn: C言語製。最小構成で高速
  • Dired: Emacs内蔵。エディタの機能をファイル操作に活用

使い始めると、機能の多さよりも、操作体系の違いの方が体験を大きく左右することに気づきました。
Vimユーザーは自然とhjklに指が伸び、EmacsユーザーはCtrlMetaを前提に動きます。Windowsユーザーは2ペインとファンクションキーに安心感を覚えます。

2. Windowsユーザー向け:2ペイン型の安心感

Windowsユーザー向け:2ペイン型 左パネル folder_a folder_b 右パネル folder_c folder_d 主なツール Midnight Commander Far Manager 見れば分かる 操作ミス少

2.1. 最初に触れたMidnight Commander

最初に試したのは、Norton Commanderのクローンとして知られるMidnight Commanderです1

Midnight Commander
Midnight Commander

Norton Commanderは1980-90年代のDOS時代に標準的だったファイルマネージャーで、2ペイン構成とファンクションキー操作が特徴でした2

Midnight Commander(略してmc)を起動すると、左右2ペインが表示されます。
左と右に別のフォルダを表示し、ファンクションキーで操作する構成です。

Midnight Commander(Linux):

# Debian/Ubuntu
sudo apt install mc

# Fedora/CentOS
sudo dnf install mc
Code language: PHP (php)

2.2. 操作の直感性

F5キーでコピー、F6キーで移動、F8キーで削除。
この操作体系は、Windowsで長く使われてきたTotal Commanderなどと共通しています。
コピー元とコピー先が同時に見えるため、操作ミスが起きにくいと感じました。

操作を覚える必要がほぼありません。
画面下部にファンクションキーの機能が常に表示されているため、「見れば分かる」構造になっています。

ただし、ファイルの中身を詳しく確認しながら選ぶ作業には向きません。
プレビュー機能は最低限で、大量のファイルを素早く整理する用途に特化しています。

2.3. Windows専用のFar Manager

次にFar Managerを試しました。
これはWindows専用で、Win32コンソールAPIを使って作られています。
Midnight Commanderと同じく2ペイン構成ですが、より洗練された印象を受けました。

Far Manager(Windows):
公式サイト(https://www.farmanager.com/)からダウンロード

Far Managerの特徴は、内蔵ビューアとプラグインエコシステムです3
ファイルを開かずに中身を確認できる機能は、想像以上に便利でした。
テキストファイルも画像も、選択するだけで右ペインにプレビューが表示されます。

ただし、Far Managerは設定やプラグインを前提とした文化があります。
デフォルトの状態でも使えますが、真価を発揮するには少し時間をかけて環境を整える必要があります。

3. Vimユーザー向け:移動と選択の心地よさ

Vimユーザー向け:プレビュー重視 home カレント docs file.txt プレビュー Hello World This is a sample text. hjkl移動 h j k l 主なツール ranger lf nnn 開かず確認 快適な探索

3.1. ranger

Vimのキーバインドに慣れた人には、rangerは分かりやすいツールです。

ranger/ranger: A VIM-inspired filemanager for the console
ranger/ranger: A VIM-inspired filemanager for the console

rangerは3カラム(列)構成です。
左に親ディレクトリ、中央にカレントディレクトリ、右にプレビューという配置です。
jキーで下へ、kキーで上へ、hキーで親ディレクトリへ、lキーで選択したディレクトリの中へ移動します。

ranger(Linux/macOS):

# Debian/Ubuntu
sudo apt install ranger

# macOS
brew install ranger
Code language: PHP (php)

rangerの最大の特徴は、充実したプレビュー機能です。
テキストファイルを選択すると、右カラムに内容が表示されます。
画像ファイルを選択すると、サムネイルが表示されます(これには追加のパッケージとしてUeberzugなどが必要です)4

デフォルトの設定ファイルは~/.config/ranger/rc.confに配置されます。
ranger --copy-config=allコマンドを実行すると、設定ファイルのテンプレートが生成されます。

「開かずに見る」体験は快適でした。
ファイルを確認するために開いて、閉じて、また次を開いて、という繰り返しがなくなります。
移動するたびにプレビューが更新されるため、探しているファイルをすぐに見つけられます。

ただし、rangerはPython製のため、起動がやや重いと感じるときがあります5

3.2. 軽量な代替案:lfとnnn

rangerの起動の重さが気になったため、他の選択肢も試しました。

lf(list files)はGo言語で書かれた軽量なファイルマネージャーです6
単一バイナリで提供されるため、インストールが簡単で、起動も速いです。
rangerと同じく3カラム構成で、Vimライクなキーバインドを持っています。

ただし、lfは最初の状態では機能が少なく感じました。
rangerのような豊富なプレビュー機能はデフォルトでは含まれておらず、設定ファイルで自分でカスタマイズする前提のツールです。

nnnはさらに割り切った設計です。
最低限の機能だけを提供し、拡張はプラグインで後付けするという思想が明確でした。起動は非常に速く、リソース消費も少ないです。

3.3. Vim/Neovim内で使えるファイル管理プラグイン

実は、rangerやlfのような独立したCUIファイルマネージャーとは別に、Vim/Neovim内部で使えるファイル管理プラグインも存在します。
これらは、エディタを離れずにファイル操作ができる点が特徴です。

3.4. Vim標準のNetrw

Vim – Simple English Wikipedia, the free encyclopedia
Vim – Simple English Wikipedia, the free encyclopedia

Vimには標準でNetrwというファイルブラウザが組み込まれています。
:e .:Exploreコマンドで起動でき、追加インストール不要で使えます。
ただし、機能は最低限で、見た目も質素です。

3.5. NERDTree – 定番のツリー型ファイラー

最も有名なVimプラグインの一つがNERDTreeです。
画面の左側にツリー状のファイル一覧を常駐させ、IDE的な使い方ができます。
Ctrl+nなどで起動し、ツリーを展開しながらファイルを開けます。

preservim/nerdtree: A tree explorer plugin for vim.
preservim/nerdtree: A tree explorer plugin for vim.

長い間Vimユーザーに愛用されてきましたが、パフォーマンス面での課題もあります。大量のファイルがあるプロジェクトでは、動作が重くなることがあります。

3.6. Fern – モダンで高速な選択肢

Fernは、NERDTreeの置き換えを目指して開発された新しいファイラーです。
外部依存がなく、パフォーマンスが良好です。

Fernの特徴は、アクションベースの操作です。
aキーを押すとアクションを選択でき、ユーザーがキーマッピングを覚える負担を減らしています。
Git連携プラグイン(fern-git-status.vim)やアイコン表示(fern-renderer-nerdfont.vim)など、拡張機能も充実しています。

3.7. Telescope – Neovim専用のファジーファインダー

Neovimユーザーには、Telescopeという選択肢もあります。
厳密にはファイラーではなく「ファジーファインダー」ですが、ファイル検索とプレビューに特化しています。

nvim-telescope/telescope.nvim: Find, Filter, Preview, Pick. All lua, all the time.
nvim-telescope/telescope.nvim: Find, Filter, Preview, Pick. All lua, all the time.

Telescopeは、フローティングウィンドウで検索結果を表示し、インクリメンタルにファイルを絞り込めます。
ファイル検索だけでなく、Git操作やLSP機能との連携も可能です。
telescope-file-browser.nvim拡張を使えば、ファイル操作機能も追加できます。

4. Emacsユーザー向け:Diredという別世界

Diredは、Emacsに標準で組み込まれているファイル管理機能です7
独立したツールではなく、エディタの一部として設計されています。

Dired – Wikipedia
Dired – Wikipedia

Dired: Emacsをインストール後、C-x dで起動

Emacsユーザー向け:編集力活用 Dired = Directory Editor drwxr-xr-x user group documents/ -rw-r–r– user group file_001.txt -rw-r–r– user group file_002.txt -rw-r–r– user group report.pdf * * mキーでマーク → C/R/Dで一括操作 wdired-mode:直接編集 report_2024.pdf report_2025.pdf C-x d 起動 M-% 正規表現 C-x r t 矩形編集 ファイル操作が編集に

Diredを起動すると、ファイル一覧がバッファ(Emacsでの編集領域)として表示されます。
これは「画面」ではなく「テキスト」です。

4.1. ファイル操作が編集になる感覚

Diredでは、複数のファイルに印(マーク)を付けて、一括で処理できます。
mキーでファイルをマークし、uキーでマークを外します。
マークしたファイルに対して、Cキーでコピー、Rキーで移動(リネーム)、Dキーで削除を実行します。

さらに強力なのは、wdired-modeです8
rキーを押すと、ファイル一覧が編集可能になります。
ファイル名を通常のテキスト編集と同じように変更でき、C-x C-sで保存すると、実際にファイル名が変更されます。

正規表現を使った置換(M-%)や、矩形編集(C-x r t)といったEmacsの強力な編集機能を、ファイル操作にそのまま使えます。これは他のファイルマネージャーにはない特徴です。

4.2. 視覚的な分かりやすさは弱い

ただし、Diredは視覚的に分かりやすいツールではありません。
ツリー表示はなく、基本的にはテキストの一覧です。
フォルダ構造を視覚的に把握したい人には、少し不向きかもしれません。

また、Emacsの操作に慣れていない人には、最初のハードルが高いです。
C-x d(Control + x、その後 d)でDiredを起動するという操作からして、独特です。

Diredは、大量のファイルを論理的に処理する作業に非常に向いています。
「特定のパターンに一致するファイルを全て選択して、名前を一括変更する」といった作業が得意です。

一方で、ファイルを直感的に眺める用途では不向きです。
Explorer的な体験を期待すると、期待と異なる印象を受けるでしょう。

5. 選択のポイント

CUIファイルマネージャーを選ぶ際、最も重要なのは「自分の手がどこに伸びるか」です。

普段、どのエディタを使っていますか?どのキーバインドに慣れていますか?ファイル操作で何に時間をかけていますか?

実際に複数のCUIファイルマネージャーを触ってみて、優劣ではなく適性の問題だと感じました。

Windowsユーザーには、2ペインの安心感があります。
左右にフォルダを並べて、ファンクションキーで操作する形式は、長年使われてきた理由があります。

Vimユーザーには、移動とプレビューの心地よさがあります。
hjklで素早く移動し、プレビューで確認する流れは、Vimでのテキスト編集と同じ感覚です。

Emacsユーザーには、編集力そのものがあります。
ファイル操作を「編集」として扱うことで、テキスト編集の強力な機能を活用できます。

どれも「正解」です。
ただし、前提となる考え方が違います。

CUIファイルマネージャーは、慣れれば速い道具です。ただし、慣れるまでの道のりは人によって違います。自分の手の動きを観察し、自分に合う道具を見つけてください。

  1. Midnight Commanderは1994年にMiguel de Icaza氏によって開発が開始されました。GNU General Public Licenseの下でリリースされており、Linux、BSD、macOS、Windowsなど多くのプラットフォームで動作します。 – Midnight Commander
  2. Norton Commanderは1986年にJohn Socha氏によって開発され、MS-DOS時代のファイル管理の標準となりました。F5でコピー、F6で移動、F8で削除という操作体系は、その後の多くのファイルマネージャーに受け継がれています。 – Midnight Commander – Wikipedia
  3. Far Managerは元々Eugene Roshal氏(WinRARの開発者としても知られる)によって開発され、2000年以降はFar Groupによって開発が継続されています。現在はBSD-3-Clauseライセンスの下でオープンソース化されています。 – Far Manager – Wikipedia
  4. rangerでターミナル上に画像を表示するには、Ueberzug、w3m-img、iTerm2のイメージプロトコルなど、いくつかの方法があります。設定ファイル(rc.conf)でset preview_images trueset preview_images_method ueberzugのように指定します。 – CLI で Linux ファイルマネージャ ranger を使うことのメモ | Jenemal Notes
  5. rangerはPythonで書かれており、豊富な機能と引き換えに起動速度がやや遅くなる傾向があります。対照的に、Go言語で書かれたlfやC言語で書かれたnnnは、コンパイル済みのバイナリとして配布されるため起動が高速です。 – GitHub – ranger/ranger: A VIM-inspired filemanager for the console
  6. lfは「list files」の略で、Go言語で実装されています。クロスプラットフォームで動作し、Windows、macOS、Linuxのいずれでも単一のバイナリファイルをダウンロードするだけで使用できます。 – CUIで動くファイラ LF (Terminal file manager) – いろいろ備忘録日記
  7. Diredは「Directory Editor」の略で、Emacsの初期バージョンから存在する歴史的な機能です。ファイル一覧を通常のバッファとして扱うことで、Emacsの強力な編集機能をファイル操作に適用できます。 – GNU Emacs Manual: Dired
  8. wdired(Writable Dired)は、Diredバッファを直接編集可能にする機能で、Emacs 22から標準搭載されています。ファイル名を通常のテキストと同様に編集し、保存すると実際のファイルシステムに反映されます。正規表現置換(M-%)や矩形編集(C-x r t)などの高度な編集機能も利用できます。 – Emacsのdired-modeを使い易くする | κeenのHappy Hacκing Blog