Midnight Commanderを使ってみる

Midnight CommanderはSSH経由で使用可能なCUIベースのファイルマネージャーです。

この記事ではMidnight Commanderの設定方法と使用方法を記載します。

 

1 Midnight Commander

Windowsではエクスプローラ、OSXではFinder、UbuntuではNautilusとGUIベースのファイルマネージャーは数多く存在します。

Midnight CommanderはCUIベースのファイルマネージャーです。マウス操作なしで使うことができ(マウス操作でも使うことができます)、SSH経由でも使うことができます。

0001_mc.png

2 Midnight Commanderのインストール

apt、yum、homebrewでインストールできます。

$ sudo apt-get install -y mc

mcコマンドを実行します。

$ mc

3 設定

設定ファイルは${HOME}/.config/mcディレクトリに保存されます。'F9'を押すことでメニューにフォーカスが移ります。

3.1 スキンの変更

xterm-256color等の色が豊富でない環境ではデフォルトのスキンはとても見づらいものとなります。

0002_default.png

modarcon16というスキンがおすすめです。

0003_modarcon16.png

スキンは以下のメニューから変更できます。

Options -> Appearance -> Skin -> modarcon16

CentOS 7はmodarcon16を持っていないので、他からダウンロードする必要があります。

$ wget https://raw.githubusercontent.com/MidnightCommander/mc/master/misc/skins/modarcon16.ini
$ sudo cp modarcon16.ini /usr/share/mc/skins/

modarcon16がAppearanceのメニューに出てこない場合は以下のファイルを直接編集してください。

$ grep "skin" ~/.config/mc/ini
skin=modarcon16

3.2 パネル分割

パネルを上下か左右に分割できます。

Options -> Layout -> Panel split

0004_panel-split.png

3.3 パネルの表示内容

デフォルトだと分割されたパネルの両方ともFile listingとなっています。片方のパネルをQuick View等に変更します。

Above -> File lisint / Quick View
Below -> File lisint / Quick View

 

設定を保存します。

Options -> Save setup

 

0006_save-setup.png

3.4 外部エディタと外部ビューアを使う

あらかじめ${HOME}/.bashrc等でEDITOR変数とVIEWER変数をexportしておきます。

$ export EDITOR=emacs
$ export VIEWER=less

以下のメニューで"Use internal edit"と"Use internal view"のチェックを外します。

Options -> Configuration -> Other options -> Use internal edit / view

0007_unuse-internal-edit-view.png

'F4'を押すとEDITORで設定したemacsが、'F3'を押すとVIEWERで設定したlessが起動します。

 

3.5 登録されていない拡張子向けのView/Edit/Open

Midnight Commanderは拡張子毎にView/Edit/Openというアクションを持ちます。'RET'は押しやすいので、特にOpenは重要です。

 

key action
F3 View
F4 Edit
RET Open

 

Openは少し特殊で、*.sh向けにはスクリプトを実行し、*.zip向けにはzipファイルの展開を提供します。

Midnight Commanderは登録されていない拡張子のアクションはデフォルトで定義していません。"Edit extention file"メニューからアクションを変更する必要があります。

Command -> Edit extension file 

0008_edit-extension-file.png

default/*のOpenとViewを以下のように変更します。

diff -uprN ~/.config/mc/mc.ext{.org,}
--- /Users/hiroom2/.config/mc/mc.ext.org        2015-09-06 17:00:34.000000000 +0900
+++ /Users/hiroom2/.config/mc/mc.ext    2015-09-06 17:12:12.000000000 +0900
@@ -744,8 +744,8 @@ type/^Parity\ Archive\ Volume\ Set

 # Default target for anything not described above
 default/*
-       Open=
-       View=
+       Open=${EDITOR} %f
+       View=${VIEWER} %f


 ### EOF ###

4 操作方法

4.1 カーソル操作

emacsのキーバインディングと同様に操作できます。

 

C-p Move upper
C-n Move lower
M-v Scroll upper
C-v Scroll lower
M-< Move to the head
M-> Move to the tail

 

4.2 パネル切り替え

'TAB'を押すことでフォーカスするパネルを切り替えることができます。

フォーカスしたパネルに対してカーソル操作が可能です。

4.3 ファイル操作

ファイルの新規作成用のショートカットは存在しません。

touchコマンドを実行してファイルを新規作成してください。

 

'C-x' 'q' less Quick view
'C-x' 'i' ls File attribute view
'C-x' 'o' chown Change owner and group
'C-x' 'c' chmod Change exec/read/write
'F5' cp Copy file
'F6' mv Move file
'F7' mkdir Create directory
'F8' rm Remove file / directory

 

4.4 サブシェル

キーボードをタイプすることで画面下部でコマンドを実行できます。

'M-TAB'でファイル名を補完し、'M-h'でコマンド履歴を閲覧できます。

 

'C-o'でサブシェルとファイルマネージャーを切り替えることができます。

サブシェルでは通常のシェルと同様の操作が可能です。

4.5 Midnight Commanderの終了

'F10'を押すか、exitコマンドを実行してください。 

4.6 UTF-8環境にてMidnight CommanderとGNU Screen 4.1を使う

"cjkwidth off"を${HOME}/.screenrcに追加してください。