Midnight Commander
関連記事
Midnight Commander はビジュアルファイルマネージャです。ファイルやディレクトリー全体のコピー・移動・削除や、ファイルの検索、サブシェルでのコマンドの実行ができます。ビューアやエディタも内蔵しています。
Ncurses や S-Lang のような汎用のテキストインターフェイスを使っているため、通常のコンソール、X Window ターミナル、または SSH 接続を介してリモートシェルでも動作します。
目次
インストール
mc パッケージを インストール してください。開発版は AUR の mc-gitAUR でインストールできます。
スキン
Midnight Commander にはデフォルトで複数のスキンが付属しており、Options > Appearance でスキンを設定できます。
サードパーティ製のスキンは以下のパッケージでインストールできます:
- mc-solarized-git — Midnight Commander の Solarized カラーテーマ
- mc-skin-modarin-debian — modarin テーマのシンプルバージョン
- mc-skin-candy — Candy カラーテーマ (256color)
- candy256.ini ||
mc(1) の Skins
も参照。
使用方法
以下のセクションでは Midnight Commander の簡単な使い方を説明しています。mc(1) やヘルプ (F1
) への参照は Section
で表します。
インターフェイス
プロミネントビューでは2つの縦ペインが存在します。ディレクトリの中身や、プレーンテキストのプレビュー、ファイルの詳細、あるいはディレクトリツリーを表示することが可能です (Directory Tree
を参照)。ファンクションキーやマウスを使うことでファイルの操作ができます。ダイナミックユーザーメニュー (F2
) やオプションメニュー (F9
) には他のオプションも表示されます。F12
以上のメニュー (F13
から F20
まで) は Shift
で使うことができます。メニューやダイアログのオプションは一文字だけハイライトされ、その文字を押すことで (あるいはテキストエントリで Alt+Letter
を押下)、直接オプションを実行します。
下には、サブシェルに接続されたコマンドラインが表示されます。mc を起動するのに使ったシェルと同じタイプのシェルで、自由に切り替えることが可能です (Ctrl-O
)。The subshell support
を参照。このコマンドラインでは、cd は Midnight Commander によって解釈され、シェルには渡されません。従って、(Zsh のような) 特殊な補完 (Zsh など) は使えません。ペインのファイルはコマンドラインで操作することができます。例えば、Alt+Enter
で (選択された) ファイルの名前をコマンドラインにコピーします。
キーバインドは GNU Emacs と似ています。さらに、厳格な emacs のキーマップを有効にすることも可能です (Redefine hotkey bindings
を参照)。新規ユーザー向けの Lynx ライクな (方向キーを使用する) キーバインドを使ったり (Options > Panel options
で有効化)、あるいはマウスで操作することもできます。
モジュール
以下のモジュールは mc のインターフェイスから呼び出すことができ (Options > Configuration
の Use internal を有効化)、または mc バイナリのシンボリックリンクとして独立しています。
- mcedit - テキスト・バイナリファイルエディタ。正規表現による置換、シンタックスハイライト、マクロ、シェルパイプなどに対応。mcedit(1) を参照。
- 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
を参照。
ヒントとテクニック
メニューから起動
デスクトップエントリ を使うことでメニューから 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
ディレクトリに移動します。
トラブルシューティング
終了したときにカレントディレクトリが移動する
終了時、最後に使用したディレクトリではなく、Midnight Commander が起動したときに開いていたディレクトリにシェルが戻ります。~/.bashrc
や ~/.zshrc
に以下の行を追加することで利用することができる、ラッパースクリプトが存在します:
source /usr/lib/mc/mc.sh
上記の設定で mc
がラッパースクリプトにエイリアスされます。
サブシェルを使用するという方法もあります (Ctrl+o
)。ただし、他のターミナルアプリケーションと干渉する可能性があります。
画面が化ける
Ctrl+l
を押して画面を再描写してください。再描写を行うだけでファイルリストの更新 (Ctrl+r
) は行われません。
ファイルを開く
mc はファイルを開くときに MC_XDG_OPEN
環境変数を使います。デフォルトでは xdg-open になっています [2]
作成されたプロセスが終了するまで 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 コマンドを使ってください。
ショートカットが機能しない
screen-256color
や xterm-termite
など特定のターミナル定義を使用している場合、Shift+F6
などのショートカットが機能しなかったりおかしかったりすることがあります。問題を解決するには、Learn keys
ダイアログを使って手動でターミナルシーケンスを割り当ててください。
設定は ~/.config/mc/ini
ファイルに保存されます。例えば screen-256color
の場合:
[terminal:screen-256color] f1=\\eOP f2=\\eOQ f3=\\eOR f4=\\eOS f5=\\e[15~ f6=\\e[17~ f7=\\e[18~ f8=\\e[19~ f9=\\e[20~ f10=\\e[21~ f11=\\e[23~ f12=\\e[24~ f13=\\e[1\;2R f14=\\e[1\;2S f15=\\e[15\;2~ f16=\\e[17\;2~ f17=\\e[18\;2~ f18=\\e[19\;2~ f19=\\e[20\;2~ f20=\\e[21\;2~ complete=\\e^i backtab=\\e[Z backspace=^?
urxvt で太字のテキストが表示されない
デフォルトの TERM
設定で urxvt の下で起動した場合、他の多くの端末では通常太字であるテキストは表示されません。この問題の原因は、xterm が明るいテキストの色と太字の属性を組み合わせているためです (したがって、 xterm では明るい色が常に太字として表示されます)
urxvt にはこの制限はなく、Slang (mc がデフォルトでテキスト表示に使用するライブラリ) が考慮されます。Slang は urxvt の明るい色から太字属性を切り離すことができるため、mc は必要に応じて太字属性を明示的に指定する必要があります (which it does not)
解決策は、必要に応じて太字を明示的に使用するように mc を設定することです。デフォルトのスキンを次のように編集します。
$ mkdir ~/.local/share/mc/skins $ cp /usr/share/mc/skins/default.ini ~/.local/share/mc/skins/ $ sed -i -E 's/^(.* = (gray|brightred|brightgreen|yellow|brightblue|brightmagenta|brightcyan|white);.*)$/\0;bold/' ~/.local/share/mc/skins/default.ini
上記はデフォルトのスキンのコピーを作成しますが、すべての明るい色に明示的なボールド属性が追加されています。
別の一般的な回避策は TERM=xterm
を設定することですが、これにより、特定のキーが機能しないなど、termcap/terminfo の不一致が原因で他の問題が発生します。