やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ファイラrangerに欲しい機能

rangerはpythonで独自コマンドを実装できる。要件を考えてみた。

欲しい機能

  • パス文字列
    • 選択した全ファイルやディレクトリのパス文字列を取得する (yp, yn)
  • 実行
    • pythonコマンドなどを実行し、その結果をpagerで表示し、rangerに戻る
  • 編集
    • htmlなどはブラウザで起動テキストエディタで編集の2種類は欲しい
  • 削除
    • deleteコマンドの確認をなくして、一定時間(5分間)RAMディスクに保存し、復元できるようにしたい
      • 一律Dキー押下で削除したい
  • grep
  • サブプロセス起動
    • ターミナルに新規タブを作成し、カレントディレクトリでrangerを起動する

パス文字列

デフォルトでは、複数ファイルを選択肢てもひとつしか取得できない。

実行

デフォルトでは、実行しても一瞬で画面が消えてしまう。

:sell -p python %s とすれば可能。ただし入力が面倒くさい。#:shell -pまでは省略できるが、以降のコマンドは省略不可。

編集

デフォルトでは、Enter or E or Ctrl + m キー押下すると、最優先アプリで起動する。

削除

デフォルトでは、削除が面倒。とくにディレクトリや複数ファイル選択時が超ウザい。何度も確認を求められる。

  1. 削除対象を選択する
  2. dキー押下
  3. D (Shift + d) キー押下
  4. :delete と表示されるのでEnterキー押下
  5. Confirm deletion of: <File>, ... (y/N )と表示されるので、yキー押下

単一ファイルなら4までで完了。複数ファイルなら5まで。手順多すぎ。

GUIファイラはShift + dキー押下で一発なのに。

grep

commands_full.pygrepコマンドがあったが、rc.confではキーマップされていなかった。

再帰的にgrepするなら、findなど他のコマンドと組み合わせる必要がある。

サブプロセス起動

デフォルトでは、Sキーでサブプロセスを起動できるが、ターミナルの新しいタブは作成できない。現在のタブでサブプロセスが起動されるだけ。

  • exitで戻らねばならず面倒
  • サブプロセスであるかどうか目視できない
  • 同時並行起動できない

開発環境

前回