「Midnight Commander」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎スキン: 情報を更新)
(同期)
 
6行目: 6行目:
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|ファイルマネージャの機能}}
 
{{Related|ファイルマネージャの機能}}
  +
{{Related|lf}}
 
{{Related|nnn}}
 
{{Related|nnn}}
 
{{Related|ranger}}
 
{{Related|ranger}}
  +
{{Related|Vifm}}
 
{{Related articles end}}
 
{{Related articles end}}
   
[https://midnight-commander.org/ Midnight Commander] はビジュアルファイルマネージャです。ファイルやディレクトリー全体のコピー・移動・削除や、ファイルの検索、サブェルでのコマンドの実行ができます。ビューアエディタも内蔵しています。
+
[https://midnight-commander.org/ Midnight Commander] は、[[Wikipedia:Unix-like|Unix系]] システム向けのビジュアルシェルです。これは [[Wikipedia:Category:Orthodox_file_managers|オーソドックス]] な (2ペイン) ファイルマネージャであり、標準的なファイル操作仮想ファイルシステム、外部コマンドのパネル化、ユーザーメニューをサポートしています。内部ビューア {{man|1|mcview}}、エディタ {{man|1|mcedit}}、ビジュアル差分ツール {{man|1|mcdiff}} 含まれています。
   
Ncurses や S-Lang のよう汎用のテキストインターフェを使っているため、通常のコンソール、X Window ターミナル、または [[Secure Shell|SSH]] 接続を介してリモートシェルで動作します。
+
多機能なテキストインターフェ([https://invisible-island.net/ncurses/ncurses-slang.html ncurses または S-Lang])に基づいているため、[[Linux コンソール|通常のコンソール]][[アプリケーション一覧/ユーティリティ#ターミナルエミュレータ|X Window ターミナル]] 内、[[Secure Shell]] (SSH) 接続、その他あらゆる種類のリモートシェルで動作します。
  +
  +
[https://midnight-commander.org/wiki/doc ドキュメント] はまだドラフト状態にあります。
   
 
== インストール ==
 
== インストール ==
28行目: 32行目:
   
 
こちらも参照 {{man|1|mc|Skins}}
 
こちらも参照 {{man|1|mc|Skins}}
  +
  +
== 設定 ==
  +
  +
ほとんどの Midnight Commander の設定はメニューから変更できます。ただし、クリップボードのコマンドやコードセットの検知、外部エディタのパラメータなどは {{ic|~/.config/mc/ini}} でしか設定を変更できません。利用可能なオプションの説明は {{ic|'''Special Settings'''}} を参照してください。
  +
  +
さらに、以下の環境変数を使うことができます:
  +
{{ic|MC_SKIN}}, {{ic|MC_KEYMAP}}, {{ic|MC_XDG_OPEN}}, {{ic|MC_COLOR_TABLE}}, {{ic|MC_DATADIR}}, {{ic|MC_HOME}}, {{ic|KEYBOARD_KEY_TIMEOUT_US}}, {{ic|PAGER}}, {{ic|EDITOR}}, {{ic|VIEWER}}
  +
  +
{{ic|'''Files'''}} を見てください。
  +
  +
=== extfs ===
  +
  +
extfs を利用することで簡単に mc 用に仮想ファイルシステムを作成することができます。詳しくは {{ic|/usr/lib/mc/extfs.d/README}} を参照。
   
 
== 使用方法 ==
 
== 使用方法 ==
47行目: 64行目:
 
以下のモジュールは ''mc'' のインターフェイスから呼び出すことができ ({{ic|Options > Configuration}} の ''Use internal'' を有効化)、または ''mc'' バイナリのシンボリックリンクとして独立しています。
 
以下のモジュールは ''mc'' のインターフェイスから呼び出すことができ ({{ic|Options > Configuration}} の ''Use internal'' を有効化)、または ''mc'' バイナリのシンボリックリンクとして独立しています。
   
* ''mcedit'' - テキスト・バイナリファイルエディタ。正規表現による置換、シンタックスハイライト、マクロ、シェルパイプなどに対応。{{man|1|mcedit}} を参照
+
* {{man|1|mcedit}} - テキスト・バイナリファイルエディタ。正規表現による置換、シンタックスハイライト、マクロ、シェルパイプなどに対応。
* ''mcview'' - goto マークや regex 検索ができるテキスト・ヘックスビューア。
+
* {{man|1|mcview}} - goto マークや regex 検索ができるテキスト・ヘックスビューア。
* ''mcdiff'' - 2つのファイルを一度に比較・編集する ({{ic|C-x d}})
+
* {{man|1|mcdiff}} - 2つのファイルを一度に比較・編集する ({{ic|C-x d}})
   
一つの {{ic|mc}} インスタンスで、複数のモジュールを同時に起動することができます ({{ic|Ctrl-`}})。{{ic|'''Screen selector'''}} を参照してください。外部エディタを使こともでき、パラメータ設定ます。
+
Midnight Commander インスタンスごとに複数のモジュールを同時に実行でき{{man|1|mc|Screen selector}} を参照する通り {{ic|Alt+`}} で切り替えが可能です代わりに外部エディタを使用することもでき、パラメータはそれに応じて設定できます。
 
== 設定 ==
 
 
ほとんどの Midnight Commander の設定はメニューから変更できます。ただし、クリップボードのコマンドやコードセットの検知、外部エディタのパラメータなどは {{ic|~/.config/mc/ini}} でしか設定を変更できません。利用可能なオプションの説明は {{ic|'''Special Settings'''}} を参照してください。
 
 
さらに、以下の環境変数を使うことができます:
 
{{ic|MC_SKIN}}, {{ic|MC_KEYMAP}}, {{ic|MC_XDG_OPEN}}, {{ic|MC_COLOR_TABLE}}, {{ic|MC_DATADIR}}, {{ic|MC_HOME}}, {{ic|KEYBOARD_KEY_TIMEOUT_US}}, {{ic|PAGER}}, {{ic|EDITOR}}, {{ic|VIEWER}}
 
 
{{ic|'''Files'''}} を見てください。
 
 
=== extfs ===
 
 
extfs を利用することで簡単に mc 用に仮想ファイルシステムを作成することができます。詳しくは {{ic|/usr/lib/mc/extfs.d/README}} を参照。
 
   
 
== ヒントとテクニック ==
 
== ヒントとテクニック ==
110行目: 114行目:
   
 
[https://mail.gnome.org/archives/mc/2010-March/msg00041.html GNOME メーリングリストのこのスレッド] も参照。
 
[https://mail.gnome.org/archives/mc/2010-March/msg00041.html GNOME メーリングリストのこのスレッド] も参照。
  +
  +
=== mcedit シンタックスハイライト ===
  +
  +
{{man|1|mcedit|SYNTAX HIGHLIGHTING}} セクションには、[https://github.com/paulsheer/cooledit/blob/216a795a675efbaaf49e3ad3cbd324df3d6b84c3/man/cooledit.1#L477 対応するセクション] に記載されている重要な情報が [https://midnight-commander.org/ticket/4543 欠けています] ''mcedit'' および [https://github.com/paulsheer/cooledit cooledit] のマニュアルページを参照するか、[https://midnight-commander.org/attachment/ticket/4543/merge_cooledit_syntax_highlighting.patch パッチ] を適用してください。
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==

2025年1月31日 (金) 17:41時点における最新版

関連記事

Midnight Commander は、Unix系 システム向けのビジュアルシェルです。これは オーソドックス な (2ペイン) ファイルマネージャであり、標準的なファイル操作、仮想ファイルシステム、外部コマンドのパネル化、ユーザーメニューをサポートしています。内部ビューア mcview(1)、エディタ mcedit(1)、ビジュアル差分ツール mcdiff(1) も含まれています。

多機能なテキストインターフェース(ncurses または S-Lang)に基づいているため、通常のコンソールX Window ターミナル 内、Secure Shell (SSH) 接続、その他あらゆる種類のリモートシェル上で動作します。

ドキュメント はまだドラフト状態にあります。

インストール

mc パッケージを インストール してください。開発版は AURmc-gitAUR でインストールできます。

スキン

Midnight Commander にはデフォルトで複数のスキンが付属しており、Options > Appearance でスキンを設定できます。

サードパーティ製のスキンは以下のパッケージでインストールできます:

  • 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(1) § Skins

設定

ほとんどの 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 の簡単な使い方を説明しています。mc(1) やヘルプ (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 のような) 特殊な補完 (Zsh など) は使えません。ペインのファイルはコマンドラインで操作することができます。例えば、Alt+Enter で (選択された) ファイルの名前をコマンドラインにコピーします。

キーバインドは GNU Emacs と似ています。さらに、厳格な emacs のキーマップを有効にすることも可能です (Redefine hotkey bindings を参照)。新規ユーザー向けの Lynx ライクな (方向キーを使用する) キーバインドを使ったり (Options > Panel options で有効化)、あるいはマウスで操作することもできます。

モジュール

以下のモジュールは mc のインターフェイスから呼び出すことができ (Options > ConfigurationUse internal を有効化)、または mc バイナリのシンボリックリンクとして独立しています。

  • mcedit(1) - テキスト・バイナリファイルエディタ。正規表現による置換、シンタックスハイライト、マクロ、シェルパイプなどに対応。
  • mcview(1) - goto マークや regex 検索ができるテキスト・ヘックスビューア。
  • mcdiff(1) - 2つのファイルを一度に比較・編集する (C-x d)

Midnight Commander のインスタンスごとに複数のモジュールを同時に実行でき、mc(1) § Screen selector を参照する通り Alt+` で切り替えが可能です。代わりに外部エディタを使用することもでき、パラメータはそれに応じて設定できます。

ヒントとテクニック

メニューから起動

デスクトップエントリ を使うことでメニューから 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 が設定されている場合 (デフォルト)、ホームディレクトリに存在しないファイルは、たとえ別のパーティションにあったときでも削除するとゴミ箱に移動されます。ファイルによっては、削除にかなり時間がかかるようになります。

GNOME メーリングリストのこのスレッド も参照。

mcedit シンタックスハイライト

mcedit(1) § SYNTAX HIGHLIGHTING セクションには、対応するセクション に記載されている重要な情報が 欠けています mcedit および cooledit のマニュアルページを参照するか、パッチ を適用してください。

トラブルシューティング

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

終了時、最後に使用したディレクトリではなく、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
ヒント: libtrash を使う 場合、xdg-open の前に unset LD_PRELOAD を追加してください。

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

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

ショートカットが機能しない

screen-256colorxterm-termite など特定のターミナル定義を使用している場合、Shift+F6 などのショートカットが機能しなかったりおかしかったりすることがあります。問題を解決するには、Learn keys ダイアログを使って手動でターミナルシーケンスを割り当ててください。

設定は ~/.config/mc/ini ファイルに保存されます。例えば screen-256color の場合:

ノート: 以下の例では F13F20Shift+F3Shift+F10 に紐付けています。
[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 の不一致が原因で他の問題が発生します。

参照