ほぼ中立ブログ

少しだけ趣味に偏った雑記ブログ

CUIファイルマネージャrangerの設定ファイルについて

rangerはターミナルから起動できるvimライクなキーバインドで操作できるCUIのファイラーです。

ターミナル内で使えるファイラーは他にも試したのですが操作が良く分からず、デフォルトの状態でも十分使いやすいrangerに落ち着きました。全てとは言いませんが、マウスを使わなければならないGUIのファイラーに比べ素早くできることも多く、最近ではもっぱらこちらを使用しています。

その使い方については、すでに大変詳しい記事を公開されている方がいるため、検索すれば困ることは無いと思いますが、設定ファイルの書き方で少しつまずく所があったので、備忘録を兼ねてまとめます。

環境はUbuntu 18.04 LTSです。

インストール

Ubuntuならリポジトリに登録されているためaptでインストールできますが、バージョンが古いようなので、pipを使ってインストールしたほうが良いかもしれません。パッケージ名が若干トリッキーなのでご注意ください。

# pip3 install ranger-fm

設定ファイルについて

rangerの設定ファイル幾つか種類がありますが次のコマンドでデフォルトの設定ファイルが~/.config/ranger以下に生成されます。

ranger --copy-config=all

カスタマイズをする際は主に「rc.conf」と「rifle.conf」を変更していきます。rc.confでrangerのキーバインド等に関する設定を、rifile.confでrangerからファイルを開いた際に起動するプログラムを変更できます。

拡張子別に起動するプログラムを簡単に変更できる所が、大変便利です。

キーバインドのカスタマイズ

rangerはvimライクなファイラーということもあり、rc.confの書き方はvimに似ています。以下自分で追加した部分を載せます。

# Fでディレクトリ以下を再帰的に検索、Mlで表示を元に戻す。
# ファイル数が多いとフリーズします。ご注意ください。
map F console chain flat -1; filter%space
map Ml chain flat 0; filter

# Muで3つ上のディレクトリに移動。
map Mu cd ../../../

# bと.で上下に5個移動できるようにする。
map <MUP>       move up=5
map <MDOWN>     move down=5
copymap <MUP> b
copymap <MDOWN> .

ファイルを開くプログラムの設定

rifle.confについては書き方がよく分からなかったのですが、拡張子別に開くプログラムを変更する際の書式は以下のようになるようです。

ext [拡張子名]|[第2の拡張子名], flag [f or r or t] = [プログラム名] "$@ or [$1~$9]"

拡張子名は単純に拡張子部分を入力するだけなので、例えばtxtファイルならtxtとなります。|で挟んで追記することで、複数の拡張子を指定できます。

flagは幾つか種類がありますが、よく使うのはバックグラウンドでプログラムを起動するfな気がします。GUIのプログラムをfフラグ無しで起動すると閉じるまでrangerの操作ができなくなるため、実質必須だと思います。

$@で選択されたファイルが全てプログラムの引数として与えられます。$1~$9で選択されたファイルの内、何番目のファイルを渡すか指定できますが、使うのは$1くらいな気がします。

上の内容をまとめて、拡張子がfooまたはbarのファイルをgeditで開く設定は次のようになります。

ext foo|bar, flag f = gedit "$@"

拡張子よりも広い指定が可能なmime別のプログラムの変更もできますが、挙動を理解できていないので使っていません。


最後までお読みいただきありがとうございました。

参考リンク

CLI で Linux ファイルマネージャ ranger を使うことのメモ | Jenemal Notes