rangerはpythonで独自コマンドを実装できる。要件を考えてみた。
欲しい機能
- パス文字列
- 選択した全ファイルやディレクトリのパス文字列を取得する (
yp, yn
)
- 選択した全ファイルやディレクトリのパス文字列を取得する (
- 実行
- pythonコマンドなどを実行し、その結果をpagerで表示し、rangerに戻る
- 編集
- 削除
- deleteコマンドの確認をなくして、一定時間(5分間)RAMディスクに保存し、復元できるようにしたい
- 一律
D
キー押下で削除したい
- 一律
- deleteコマンドの確認をなくして、一定時間(5分間)RAMディスクに保存し、復元できるようにしたい
- grep
- サブプロセス起動
- ターミナルに新規タブを作成し、カレントディレクトリでrangerを起動する
パス文字列
デフォルトでは、複数ファイルを選択肢てもひとつしか取得できない。
実行
デフォルトでは、実行しても一瞬で画面が消えてしまう。
:sell -p python %s
とすれば可能。ただし入力が面倒くさい。#
で:shell -p
までは省略できるが、以降のコマンドは省略不可。
編集
デフォルトでは、Enter
or E
or Ctrl + m
キー押下すると、最優先アプリで起動する。
削除
デフォルトでは、削除が面倒。とくにディレクトリや複数ファイル選択時が超ウザい。何度も確認を求められる。
- 削除対象を選択する
d
キー押下D
(Shift +d
) キー押下:delete
と表示されるのでEnter
キー押下Confirm deletion of: <File>, ... (y/N )
と表示されるので、y
キー押下
単一ファイルなら4までで完了。複数ファイルなら5まで。手順多すぎ。
GUIファイラはShift + d
キー押下で一発なのに。
grep
commands_full.py
にgrep
コマンドがあったが、rc.conf
ではキーマップされていなかった。
再帰的にgrepするなら、find
など他のコマンドと組み合わせる必要がある。
サブプロセス起動
デフォルトでは、S
キーでサブプロセスを起動できるが、ターミナルの新しいタブは作成できない。現在のタブでサブプロセスが起動されるだけ。
exit
で戻らねばならず面倒- サブプロセスであるかどうか目視できない
- 同時並行起動できない