Midnight Commander
関連記事
Midnight Commander はビジュアルファイルマネージャです。ファイルやディレクトリー全体のコピー・移動・削除や、ファイルの検索、サブシェルでのコマンドの実行ができます。ビューアやエディタも内蔵しています。
Ncurses や S-Lang のような汎用のテキストインターフェイスを使っているため、通常のコンソール、X Window ターミナル、または SSH 接続を介してリモートシェルでも動作します。
目次
インストール
公式リポジトリから mc をインストールしてください。開発版は AUR の mc-gitAUR でインストールできます。
スキン
- mc-solarized-git — Midnight Commander の Solarized カラースキーム
- mc-skin-modarin-debian — modarin テーマのシンプルバージョン
- mc-skin-candy — Candy カラースキーム (256color)
- candy256.ini ||
man mc
の Skins
も参照。
使用方法
以下のセクションでは Midnight Commander の簡単な使い方を説明しています。man mc
やヘルプ (F1
) への参照は Section
で表します。
インターフェイス
プロミネントビューでは2つの縦ペインが存在します。ディレクトリの中身や、プレーンテキストのプレビュー、ファイルの詳細、あるいはディレクトリツリーを表示することが可能です (Directory Tree
を参照)。ファンクションキーやマウスを使うことでファイルの操作ができます。ダイナミックユーザーメニュー (F2
) やオプションメニュー (F9
) には他のオプションも表示されます。F12
以上のメニュー (F13
から F20
まで) は Shift
で使うことができます。メニューやダイアログのオプションは一文字だけハイライトされ、その文字を押すことで (あるいはテキストエントリで Alt+Letter
を押下)、直接オプションを実行します。
下には、サブシェルに接続されたコマンドラインが表示されます。mc を起動するのに使ったシェルと同じタイプのシェルで、自由に切り替えることが可能です (Ctrl-O
)。The subshell support
を参照。このコマンドラインでは、cd は Midnight Commander によって解釈され、シェルには渡されません。従って、(Zsh のような) 特殊な補完 (such as from Zsh) は使えません。ペインのファイルはコマンドラインで操作することができます。例えば、Alt+Enter
で(選択された)ファイルの名前をコマンドラインにコピーします。
キーバインドは GNU Emacs と似ています。さらに、厳格な emacs のキーマップを有効にすることも可能です (Redefine hotkey bindings
を参照)。新規ユーザー向けの Lynx ライクな (方向キーを使用する) キーバインドを使ったり (F9 > Options > Panel options
で有効化)、あるいはマウスで操作することもできます。
モジュール
以下のモジュールは mc のインターフェイスから呼び出すことができ (F9 > Options > Configuration
の Use internal を有効化)、または mc バイナリのシンボリックリンクとして独立しています。
- mcedit - テキスト・バイナリファイルエディタ。正規表現による置換、シンタックスハイライト、マクロ、シェルパイプなどに対応。
man mcedit
を参照。 - mcview - goto マークや regex 検索ができるテキスト・ヘックスビューア。
- mcdiff - 2つのファイルを一度に比較・編集する (
C-x d
)。
一つの mc
インスタンスで、複数のモジュールを同時に起動することができます (Ctrl-`
)。Screen selector
を参照してください。外部エディタを使うこともでき、パラメータを設定します。
設定
ほとんどの Midnight Commander の設定はメニューから変更できます。ただし、クリップボードのコマンドやコードセットの検知、外部エディタのパラメータなどは ~/.config/mc/ini
でしか設定を変更できません。利用可能なオプションの説明は Special Settings
を参照してください。
さらに、以下の環境変数を使うことができます:
MC_SKIN
, MC_KEYMAP
, MC_XDG_OPEN
, MC_COLOR_TABLE
, MC_DATADIR
, MC_HOME
, KEYBOARD_KEY_TIMEOUT_US
, PAGER
, EDITOR
, VIEWER
。
Files
を見てください。
extfs
extfs を利用することで簡単に mc 用に仮想ファイルシステムを作成することができます。詳しくは /usr/lib/mc/extfs.d/README
を参照。
Tips and tricks
メニューから起動
デスクトップエントリを使うことでメニューから Midnight Commander を起動することができます。例:
[Desktop Entry] Type=Application Version=1.0 Name=Midnight Commander Comment=Visual file manager Exec=mc Icon=folder MimeType=inode/directory Terminal=true Categories=Utility;
ゴミ箱のサポート
デフォルトでは Midnight Commander はゴミ箱を サポートしていません 。
libtrash を使う
libtrashAUR をインストールしてシェルの初期設定ファイル (例: ~/.bashrc
または ~/.zshrc
) に mc エイリアスを作ってください:
alias mc='LD_PRELOAD=/usr/lib/libtrash.so.3.3 mc'
変更を適用するには、シェルのセッションを再起動するかシェルの設定ファイルを source
してください。
デフォルト設定は /etc/libtrash.conf.sys
に定義されています。~/.libtrash
を使ってユーザーごとに設定を上書きすることができます。例:
TRASH_CAN = .Trash INTERCEPT_RENAME = NO IGNORE_EXTENSIONS= o;exe;com UNCOVER_DIRS=/dev
これで (mc で起動した) Midnight Commander によって削除されたファイルは ~/.Trash
ディレクトリに移動します。
[2] も参照。
トラブルシューティング
終了したときにカレントディレクトリが移動する
終了時、最後に使用したディレクトリではなく、Midnight Commander が起動したときに開いていたディレクトリにシェルが戻ります。~/.bashrc
や ~/.zshrc
に以下の行を追加することで利用することができる、ラッパースクリプトが存在します:
source /usr/lib/mc/mc.sh
上記の設定で mc
がラッパースクリプトにエイリアスされます。
サブシェルを使用するという方法もあります (Ctrl+o
)。ただし、他のターミナルアプリケーションと干渉する可能性があります。
画面が化ける
Ctrl+l
を押して画面を再描写してください。再描写を行うだけでファイルリストの更新 (Ctrl+r
) は行われません。
ファイルを開く
mc はファイルを開くときに MC_XDG_OPEN
環境変数を使います。デフォルトでは xdg-open になっています [3]。
作成されたプロセスが終了するまで mc がブロックされたり、mc と一緒にプロセスが終了してしまう場合、nohup & を使ってください:
~/bin/nohup-open
#!/bin/bash nohup xdg-open "$@" &
そして MC_XDG_OPEN
を以下のように設定します:
export MC_XDG_OPEN=~/bin/nohup-open
ファイル検索で何も表示されない
Find file ダイアログ (Alt+?
) で結果が表示されない場合、カレントディレクトリに存在するシンボリックリンクを確認してください。ファイル検索ではシンボリックリンクを処理できないため、代わりにバインドマウントを使用してください (man mount
を参照)。あるいは External panelize コマンドを使ってください。
Shift+F6 が動作しない
Shift+F6
キーの組み合わせが TERM=screen
や TERM=screen-256color
で使えない場合、tmux から、以下のコマンドを実行してください:
infocmp > screen (または screen-256color)
テキストエディタでファイルを開いて、ファイルの末尾に以下を追加します:
kf16=\E[29~,
それから tic
ファイルをコンパイルしてください。それでキーが機能するようになるはずです。