Midnight Commander

提供: ArchWiki
2016年10月1日 (土) 20:42時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

関連記事

Midnight Commander はビジュアルファイルマネージャです。ファイルやディレクトリー全体のコピー・移動・削除や、ファイルの検索、サブシェルでのコマンドの実行ができます。ビューアやエディタも内蔵しています。

Ncurses や S-Lang のような汎用のテキストインターフェイスを使っているため、通常のコンソール、X Window ターミナル、または SSH 接続を介してリモートシェルでも動作します。

インストール

公式リポジトリから mcインストールしてください。開発版は AURmc-gitAUR でインストールできます。

スキン

  • mc-solarized-git — Midnight Commander の Solarized カラースキーム
https://github.com/nkulikov/mc-solarized-skin || mc-solarized-gitAUR
  • mc-skin-modarin-debian — modarin テーマのシンプルバージョン
https://launchpad.net/debian/+source/mc/3:4.8.13-3 || mc-skin-modarin-debianAUR
  • mc-skin-candy — Candy カラースキーム (256color)
candy256.ini ||

man mcSkins も参照。

使用方法

以下のセクションでは Midnight Commander の簡単な使い方を説明しています。man mc やヘルプ (F1) への参照は Section で表します。

ヒント: 全てのヒントは /usr/share/mc/hints/ で見ることができます。

インターフェイス

プロミネントビューでは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 > ConfigurationUse 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 ディレクトリに移動します。

警告:
  • mc から起動したアプリケーションは LD_PRELOAD を継承するため、一部のアプリケーションでは問題が発生します [1]
  • GLOBAL_PROTECTION = YES が設定されている場合 (デフォルト)、ホームディレクトリに存在しないファイルは、たとえ別のパーティションにあったときでも削除するとゴミ箱に移動されます。ファイルによっては、削除にかなり時間がかかるようになります。

[2] も参照。

トラブルシューティング

終了したときにカレントディレクトリが移動する

終了時、最後に使用したディレクトリではなく、Midnight Commander が起動したときに開いていたディレクトリにシェルが戻ります。~/.bashrc~/.zshrc に以下の行を追加することで利用することができる、ラッパースクリプトが存在します:

source /usr/lib/mc/mc.sh

上記の設定で mc がラッパースクリプトにエイリアスされます。

サブシェルを使用するという方法もあります (Ctrl+o)。ただし、他のターミナルアプリケーションと干渉する可能性があります。

画面が化ける

Ctrl+l を押して画面を再描写してください。再描写を行うだけでファイルリストの更新 (Ctrl+r) は行われません。

サブシェルで $COLUMNS が設定されない

v4.8.17 現在、mc の中で開いたターミナルのサイズを変えても COLUMNS 変数は更新されません。そのため、vim などのターミナルアプリケーションが使えなくなってしまいます FS#50862。この問題は mc-gitAUR パッケージでは修正されています。

ファイルを開く

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
ヒント: libtrash を使う場合、xdg-open の前に unset LD_PRELOAD を追加してください。

ファイル検索で何も表示されない

Find file ダイアログ (Alt+?) で結果が表示されない場合、カレントディレクトリに存在するシンボリックリンクを確認してください。ファイル検索ではシンボリックリンクを処理できないため、代わりにバインドマウントを使用してください (man mount を参照)。あるいは External panelize コマンドを使ってください。

Shift+F6 が動作しない

Shift+F6 キーの組み合わせが TERM=screenTERM=screen-256color で使えない場合、tmux から、以下のコマンドを実行してください:

infocmp > screen (または screen-256color)

テキストエディタでファイルを開いて、ファイルの末尾に以下を追加します:

kf16=\E[29~,

それから tic ファイルをコンパイルしてください。それでキーが機能するようになるはずです。

参照