mfiler2 manual

## コマンドライン操作

キー | コマンド内容
--- | ---
上, CTRL-P | 一つ上の履歴に移動
下, CTRL-N | 一つ下の履歴に移動
左, CTRL-B | カーソル左移動
右, CTRL-F | カーソル右移動
HOME, CTRL-A | カーソルを先頭に移動
END, CTRL-E | カーソルを最後尾に移動
BACKSPACE, DELETE, CTRL-H | 一つ前の文字を削除
CTRL-D | 一つ後の文字を削除, 文字が無い場合はコマンドラインを閉じる
CTRL-K | カーソルから行末まで削除
CTRL-C, CTRL-G | コマンドラインモード終了
CRTL-J, CTRL-M, ENTER | コマンド実行
TAB, CTRL-I | 入力補完
CTRL-L | 再描写
CTRL-W | 一語前方削除
CTRL-U | コマンドラインクリア
Meta-d | 一語後方削除
Meta-b | 一語戻る
Meta-f | 一語進む
Meta-h | 現在入力中のコマンドのman pageを見る
CTRL-R | ヒストリメニュー選択。何か文字列を打っていれば、その文字列で検索。

## コマンド

コマンド | 内容
--- | ---
mf_exit() | プログラムの終了
keycommand(meta, keycode, extension, command) | カーソル下のファイルの拡張子がextensionの時にキー(meta, keycode)が押された場合の処理(command)を設定。metaはNOMETA(0)とMETA(1)の二つの値のどちらか、extensionの".execute"は実行ファイル、".dir"はディレクトリ、".mark"はファイルがマークされているときを表す。また"makefile"などドットが無い場合はそのファイル名がカーソル下にある場合実行。
cmdline(command, position) | カーソルをpositionの位置にしてコマンドラインにcommandを挿入して移る。positionは1以上なら先頭から0以下なら後方から数える位置に移動。
shell(command, title) | コマンドを実行
cursor_move(value) | カーソルの移動
cursor | カーソル位置
file_name(ファイル番号) | ファイル番号のファイル名を返す
is_marked(ファイル番号) | ファイル番号のファイルがマークされていればtrueを返す
marking | アクティブディレクトリのファイルがひとつでもマークされていればtrueを返す
is_marked_sdir(ファイル番号) | 非アクティブディレクトリでファイル番号のファイルがマークされていればtrueを返す
marking_sdir | 非アクティブディレクトリでひとつでもマークされていればtrueを返す
cursor_max | カーソルの最大値(ファイル数)
cursor_x | ディレクトリのX方向のカーソル位置
cursor_y | ディレクトリのY方向のカーソル位置
cursor_maxx | ディレクトリのX方向の最大カーソル位置
cursor_maxy | ディレクトリのY方向に最大カーソル位置
scrolltop() | スクロールトップの位置
set_scrolltop(value) | スクロールトップの位置を設定
cursor_left() | カーソルを左ウィンドウに移動
cursor_right() | カーソルを右ウィンドウに移動
cursor_other() | カーソルをもう一方のディレクトリに移動
dir_move(dir) | dirに移動
sdir_move(dir) | 非アクティブなディレクトリをdirに移動
dir_back() | 一つ前のディレクトリに戻る
sdir_back() | 一つ前のディレクトリに戻る(ノンアクティブディレクトリ)
dir_exchange() | 左右のディレクトリ位置を交換
dir_copy() | カーソルのあるディレクトリの位置をカーソルが無いディレクトリに変更
dir_new() | 新しいディレクトリを開く
dir_close() | 現在のディレクトリを閉じる
dir_up() | 後方にあるディレクトリを前に出す
mark | カーソル下のファイルをマーク(トグル)して下に移動
mark2(ファイル番号) | ファイル番号のファイルをマーク(トグル)する
mark_on(ファイル番号) | ファイル番号のファイルをマークする
mark_off(ファイル番号) | ファイル番号のファイルをマーク解除する
mark_all() | マークの反転
mark_all_files() | マークの反転(ディレクトリを除く)
menu(name) | メニューを開く
defmenu(menu-name(RSTRING), name(RSTRING), key(FIXNUM), command(RSTRING), ...) | メニューを定義。メニュー名、キー、コマンドの順で引数に渡す
refresh() | 最描写
reread() | xファイル再読み込み
sort_name() | 名前順にソートするように設定
sort_name_reverse() | 名前順(逆順)にソートするように設定
sort_time() | 更新時間順にソートするように設定
sort_time_reverse() | 更新時間順(逆順)にソートするように設定
sort_size() | サイズ順にソートするように設定
sort_size_reverse() | サイズ順(逆順)にソートするように設定
sort_ext() | 拡張子順にソートするように設定
sort_ext_reverse() | 拡張子順(逆順)にソートするように設定
sort_toggle_dir_up() | ディレクトリを優先的にソートするか否かのトグル
view_all() | ファイラー画面でファイル名以外の情報も表示する様に設定
view_onedir() | ファイラー画面で1画面表示にするように設定
view_onedir2() | ファイラー画面で1画面表示(２列)にするように設定
view_onedir3() | ファイラー画面で1画面表示(3列)にするように設定
view_onedir5() | ファイラー画面で1画面表示(5列)にするように設定
view_nameonly() | ファイラー画面でファイル名だけ表示する様に設定。もう一度よぶと元に戻す
option_color(true or false) | カラー表示するかどうかの設定
view_color | カラー表示するかどうかの設定をトグルする。
option_individual_cursor(true or false) | 左右のディレクトリ個別にカーソルを動かすかどうか設定
option_isearch_decision_way(RSTRING way) | インクリメンタルサーチを終了する方法("mismatch_finish", "enter_decision", "slash_toggle")の3つのうちどれか。
option_check_delete_file(true or false) | ファイル削除時に確認をするかどうかの設定
option_check_copy_file(true or false) | ファイルコピー、移動時に確認をするかどうかの設定
option_check_exit(true or false) | アプリケーション終了時に確認するかどうかの設定
option_shift_isearch(true or false) | Shift+英字でインクリメンタルサーチをするかどうかの設定
option_trashbox_name(RSTRING) | ゴミ箱のパスを設定
option_gnu_screen | コマンドラインの実行をGNU screen上の別端末で実行するか
option_pty | trueならコマンドラインの実行を仮想端末で実行する
option_bold_exe | falseなら実行ファイルを強調表示しない
option_bold_dir | falseならディレクトリファイルを強調表示しない
option_color_mark(カラー(FIXNUM)) | マークファイルのカラー。値はMA_WHITE, MA_BLUE, MA_CYAN, MA_GREEN,MA_YELLOW,MA_MAGENTA,MA_REDのどれか。
option_color_exe(カラー(FIXNUM)) | マークファイルのカラー。値はMA_WHITE, MA_BLUE, MA_CYAN, MA_GREEN,MA_YELLOW,MA_MAGENTA,MA_REDのどれか。
option_color_dir(カラー(FIXNUM)) | マークファイルのカラー。値はMA_WHITE, MA_BLUE, MA_CYAN, MA_GREEN,MA_YELLOW,MA_MAGENTA,MA_REDのどれか。
option_color_link(カラー(FIXNUM)) | マークファイルのカラー。値はMA_WHITE, MA_BLUE, MA_CYAN, MA_GREEN,MA_YELLOW,MA_MAGENTA,MA_REDのどれか。
option_kanjicode(RSTRING) | "euc"なら漢字ファイルをEUCとして処理、"sjis"ならShiftJISとして処理、"utf8"ならUTFとして処理
option_remain_cursor(true of false) | trueならディレクトリのカーソル位置を保存する。
option_select | trueならメインループでselectを使わない。selectが重いOS用
option_auto_rehash(true or false) | コマンドライン開始時に自動的にPATHを再検索するかどうか
option_read_dir_history(true or false) | 起動時に前回のディレクトリ位置を復帰するか
option_xterm(true or false) | コマンドをx端末上で実行するか
set_xterm(name, opt_title, opt_eval, opt_extra) | mfilerが使うx端末の名前(name), タイトルを付けるためのオプション名(opt_title), コマンドを実行するためのオプション名(opt_eval), その他のコマンド(opt_extra)
copy(ファイルのあるディレクトリ(String), ファイル(Array) , 目的ディレクトリ(String)) | ファイルのコピー
move(ファイルのあるディレクトリ(String), ファイル(Array) , 目的ディレクトリ(String)) | ファイルの移動
remove(ファイルのあるディレクトリ(String), ファイル(Array)) | ファイルの削除
trashbox(ファイルのあるディレクトリ(String), ファイル(Array)) | ファイルをゴミ箱へ移動($HOME/mtrash)
cut | 現在のカーソル下のファイルかマークされたファイルをカットする
copy2 | 現在のカーソル下のファイルかマークされたファイルをコピーする
past | コピーされたかカットファイルをペーストする
select_pty() | サスペンドしたアプリに選択。選択された仮想端末番号を返す
restore_pty(仮想端末番号(FIXNUM)) | 指定された仮想端末番号のサスペンドしたアプリに移る
kill_pty(仮想端末番号(FIXNUM)) | 指定された仮想端末番号のアプリを終了させる
set_mask(マスク(STRING)) | アクティブディレクトリのマスクを設定する
set_mask_sdir(マスク(STRING)) | 非アクティブディレクトリのマスクを設定する
cursor_name() | カーソル下にあるファイル名を返す
cursor_path() | カーソル下にあるファイルのパス名を返す
cursor_ext() | カーソル下にあるファイルの拡張子名を返す
cursor_noext() | カーソル下にあるファイルの拡張子を取り除いた名前を返す
active_dir() | アクティブなディレクトリの名前を返す
sleep_dir() | 非アクティブなディレクトリの名前を返す
adir_path() | アクティブなディレクトリのパス名を返す(最後にスラッシュ無し)
adir_path2() | アクティブなディレクトリのパス名を返す(最後にスラッシュ有り)
sdir_path() | 非アクティブなディレクトリのパス名を返す(最後にスラッシュ無し)
sdir_path2() | 非アクティブなディレクトリのパス名を返す(最後にスラッシュ有り)
left_dir() | 左側のディレクトリの名前を返す
right_dir() | 右側のディレクトリの名前を返す
ldir_path() | 左側のディレクトリのパス名を返す(最後にスラッシュ無し)
ldir_path2() | 左側のディレクトリのパス名を返す(最後にスラッシュ有)
rdir_path() | 右側のディレクトリのパス名を返す(最後にスラッシュ無し)
rdir_path2() | 右側のディレクトリのパス名を返す(最後にスラッシュ有)
adir_mark() | マーク中なら、アクティブなディレクトリのマークされたファイルの名前が入ったArrayを返す。マーク中でないなら、カーソル下のファイル名(String)が入ったArrayを返す
sdir_mark() | 非アクティブなディレクトリのマークされたファイル名(String)が入ったArrayを返す
is_adir_left() | アクティブなディレクトリが左ならtrueを右ならfalseを返す
is_adir_right() | アクティブなディレクトリが右ならtrueを左ならfalseを返す
view_option() | 現在の表示オプションを文字列で返す。"all", "one_dir", "one_dir2", "one_dir3", "one_dir5"のどれか。
isearch | イクリメンタルサーチのOn/Offのトグル
is_isearch_on() | インクリメンタルサーチがonならtrueをoffならfalseを返す
isearch_off() | インクリメンタルサーチをoffにする
isearch_on() | インクリメンタルサーチをonにする
malias(RSTRING alias, FIXNUM arg_num, RSTRING command) | aliasをcommandにエイリアスとして設定する。arg_numは引数の数。引数名は#0から#9
rehash() | コマンドライン補完のパスを再検索する
help | ヘルプを表示する
xterm_next | 次回のコマンドをX端末で実行する。
keymap(keycode, p1,p2,...p10) | キーマップを変更する。
hostname | 現在のホスト名を返す
username | プロセスの所有者名を返す
set_shell(name, path, opt_eval) | コマンドラインでコマンドを渡すシェルを指定する。nameはシェルの名前、pathはシェルのフルパス、opt_evalはコマンドを渡すオプション
message(RSTRING mesage, ...) | コマンドライン上にメッセージを描写。messageはフォーマット文字列。cursesが起動されている必要があるので、コマンドラインから起動する場合は%r%Qが必要
select_string(RSTRING mesage, RARRAY strings, FIXNUM cancel) | コマンドライン上で文字列の選択。stringsは文字列の配列。cancelはCTRL-C, G, Escapeが押されたときに選択される文字列の番号。返り値は選ばれた文字列の番号。(0からスタート)。cursesが起動されている必要があるのでコマンドラインから起動する場合は%r%Qが必要
completion(RARRAY array, RSTRING editing, sqort, dqort, last_sqort, last_dqort, add_space) | 補完を開始する。arrayは候補、editingは編集中の文字列, sqortはシングルクォート中か、dqortはダブルクォート中か, last_sqortは現在のカーソル後にシングルクォートがあるか、last_dqortは現在のカーソル後にダブルクォートがあるか、add_spaceは補完後スペースを加えるか
completion2(RARRAY array, RSTRING editing, sqort, dqort, last_sqort, last_dqort, add_space, completion_len) | 補完を開始する。arrayは[候補,説明]の配列の配列、editingは編集中の文字列, sqortはシングルクォート中か、dqortはダブルクォート中か, last_sqortは現在のカーソル後にシングルクォートがあるか、last_dqortは現在のカーソル後にダブルクォートがあるか、add_spaceは補完後スペースを加えるか、completion_lenは候補の最大文字列
option_remain_marks(true or false) | コマンド実行後や画面の再描写後もマークを残すかどうか。
is_remain_marks() | option_remain_marksがtrueならtrueを返す
history_size | ヒストリのサイズを設定する
sort_kind | 現在のソートの種類を文字列で返す。"name", "name_rev", "extension", "extension_rev", "size", "size_rev", "time", "time_rev", "user", "user_rev", "group", "group_rev"のうちのどれか。
tab_path(タブ番号) | タブのパスを返す
tab_close(タブ番号) | タブを閉じる
tab_up(タブ番号) | タブを前面に出す
tab_max() | タブの数を返す
tab_new(ディレクトリパス) | タブを作成する

## the Minnu's Curses コマンド

コマンド | 内容
--- | ---
minitscr | Minnu's Cursesを始める
mendwin | Minnu's Cursesを終了する
mmove(y, x) | 内部メモリ上のカーソルを移動する
mmove_immediately(y, x) | 実際のカーソルを移動する
mmvprintw(y,x,str) | カーソルを移動して文字列を描写。(内部のメモリに書かれるだけでmrefreshが呼ばれるまで実際には描写はしない）
mprintw(str) | 現在のカーソル位置に文字列を描写(内部のメモリに書かれるだけでmrefreshが呼ばれるまで実際の描写はしない)
mattron(attr) | 描写文字列の属性を設定する。attrはMA_REVERSE(反転), MA_BOLD(強調), MA_UNDRELINE(アンダーライン）MA_WHITE, MA_BLUE, MA_CYAN, MA_GREEN,MA_YELLOW,MA_MAGENTA,MA_REDのどれか
mattroff | 描写文字列の属性を解除する
mgetmaxx | 画面の最大文字列数(x方向)を返す
mgetmaxy | 画面の最大文字列数(y方向)を返す
mclear_immediately | 実際に画面をクリアする
mclear | 描写の内部メモリをクリアする
mclear_online(y) | 描写の内部メモリを一行だけクリアする
mbox(y, x, width, height) | ボックスを描写する
mrefresh | メモリ上の描写を画面に反映する
mis_curses | 現在Minnu's Cursesが起動されているかを返す

## フック

cursor_move_hook | カーソル位置が変更された後に呼ばれる
--- | ---
completion_hook | デフォルトの補完がなされる前に呼ばれる。動作を捕捉した場合はデフォルトの動作をしないように3を返してください。0を返すとファイルの補完を1を返すとプログラム名の補完をします。何も補完候補が無い時は2を返してください。

## キーコード定数

定数 | キー
--- | ---
KEY_UP | カーソルキー上
KEY_RIGHT | カーソルキー右
KEY_DOWN | カーソルキー下
KEY_LEFT | カーソルキー左
KEY_INSERT | INSERTキー
KEY_DELETE | DELETEキー
KEY_HOME | HOMEキー
KEY_END | ENDキー
KEY_PAGEUP | PAGEUPキー
KEY_PAGEDOWN | PAGEDOWNキー
KEY_ENTER | ENTERキー
KEY_BACKSPACE | BACKSPACEキー
KEY_SPACE | SPACEキー
KEY_ESCAPE | Escapeキー
KEY_F1 〜 KEY_F12 | ファンクションキー
KEY_a 〜 KEY_z KEY_A 〜 KEY_Z | 英字キー
KEY_CTRL_A 〜 KEY_CTRL_Z | CTRL + 英字キー
KEY_0 〜 KEY_9 | 数字キー
KEY_EXCLAM | !キー
KEY_DQUOTE | "キー
KEY_SHARP | #キー
KEY_DOLLAR | $キー
KEY_PERCENT | %キー
KEY_AND | &キー
KEY_SQUOTE | 'キー
KEY_LPAREN | (キー
KEY_RPAREN | )キー
KEY_TILDA | ~キー
KEY_EQUOL | =キー
KEY_MINUS | -キー
KEY_CUP | ^キー
KEY_VBAR | |キー
KEY_BACKSLASH | \キー
KEY_ATMARK | @キー
KEY_BAPOSTROPHE | `キー
KEY_LCURLY | {キー
KEY_LBRACK | [キー
KEY_PLUS | +キー
KEY_SEMICOLON | ;キー
KEY_STAR | *キー
KEY_COLON | :キー
KEY_RCURLY | }キー
KEY_RBRACK | ]キー
KEY_LSS | <キー
KEY_COMMA | ,キー
KEY_GTR | >キー
KEY_DOT | .キー
KEY_SLASH | /キー
KEY_QMARK | ?キー
KEY_UNDERBAR | _キー

## マクロ

マクロ文字列 | 展開内容
--- | ---
%f | カーソル下のファイルの名前に展開される
%F | カーソル下のファイルのフルパス名に展開される
%x | カーソル下のファイルの拡張子に展開される
%X | カーソル下のファイルの拡張子を除いたファイル名に展開される
%d1 | アクティブな（カーソルがある方の）ディレクトリ名に展開される
%d1s | アクティブな（カーソルがある方の）ディレクトリ名に展開される。最後にスラッシュ付き。
%d2 | 非アクティブな（カーソルが無い方の）ディレクトリ名に展開される
%d2s | 非アクティブな（カーソルが無い方の）ディレクトリ名に展開される。最後にスラッシュ付き
%D1 | アクティブなディレクトリのフルパス名に展開される
%D1s | アクティブなディレクトリのフルパス名に展開される。最後にスラッシュ付き
%D2 | 非アクティブなディレクトリのフルパス名に展開される
%D2s | 非アクティブなディレクトリのフルパス名に展開される。最後にスラッシュ付き
%m1 | アクティブなディレクトリでマークされているファイル名の羅列に展開される。マークされたファイルが無い場合はカーソル下のファイル名に展開される
%m2 | 非アクティブなディレクトリでマークされているファイル名の羅列に展開される。
%r | コマンドがshellではなくrubyに渡されて実行される
%s | 新しく仮想端末を作らずにmfiler上のsystem関数で実行される。Xアプリを実行する場合につけてください。
%t | X端末上でコマンドを実行する。
%q | コマンド実行後待たない。
%Q | コマンド実行後待たない。コマンド実行前画面を消去しない(cursesを終了せずにコマンドを実行する）。新しく仮想端末を作らずコマンドを実行する。ただしコマンドが入力を要求する場合画面が固まる。(すぐにコマンドが実行を終えるような手軽なコマンドを実行する場合につければ画面の再描写をしないのでいいです。)
%% | %に展開される
%M | コマンドを実行してもマスクをクリアしない