やってみる

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

rangerの設定 rc.confの書き方

 rangerはTUIファイラ。

rc.conf

 オプション、キーバインド設定。

種類 概要
set 変数名 値 set preview_images true オプション設定
alias 別名 rangerコマンド alias e edit コマンドの別名定義
map キー rangerコマンド map q quit キーバインド
copymap 既存キー 追加キー copymap q ZZ ZQ キーバインド(既存キーのmapを追加キーにもコピーする)
cmap キー rangerコマンド cmap <tab> eval fm.ui.console.tab() rangerコンソール上でのキーバインド
pmap pmap <down> pager_move down=1 rangerページャ上でのキーバインド
tmap キー rangerコマンド tmap <up> taskview_move up=1 rangerタスクビュー上でのキーバインド
  • バージョンによって変化する。スキーマもないので自動化が難しい
  • 設定ファイル内のコメントに意味と値が書いてある。目視で確認して設定すること

set

~/.config/ranger/rc.conf

set preview_images true
set draw_borders none
set sort natural
set max_history_size 20

 上記はいくつか適当に抜粋した。変数名、設定値、意味、いずれもrc.conf内のコメントを参照。preview_imagestruesetされる。

 シェルコマンドで以下のように操作できる。

 列挙。

cat /home/pi/.config/ranger/rc.conf | grep '^set '

 1行上も表示(大抵は直上のコメントに説明がある)。

cat /home/pi/.config/ranger/rc.conf | grep -B 1 '^set '

 画像に関係していそうなものを列挙。(行数も)

$ cat /home/pi/.config/ranger/rc.conf | grep '^set ' | grep 'image' -n
8:set open_all_images true
14:set preview_images true
15:set preview_images_method w3m

 preview_imagesの値をtrueにする。

sed -i -e 's/^set preview_images .*$/set preview_images true/g' "${rcconf}"

alias

~/.config/ranger/rc.conf

alias e     edit
alias q     quit
alias q!    quit!

 上記はいくつか適当に抜粋した。eキーを入力するとrangerコマンドeditが実行される。

map, cmap, pmap, tmap

命令 キーバインド対象箇所
map rangerファイラ
cmap rangerコンソール
pmap rangerページャ
tmap rangerタスクビュー

 覚え方。mapの接頭辞ごとに以下となっている。

prefix full
c Console
p Pager
t Task

 以下は抜粋。

~/.config/ranger/rc.conf

map     q quit
cmap <tab>   eval fm.ui.console.tab()
pmap  <down>      pager_move  down=1
tmap <up>        taskview_move up=1

copymap

 既存キーのmapに別キーも割当る。

~/.config/ranger/rc.conf

map     q quit
copymap q ZZ ZQ

 qキーのコマンドをZZ, ZQにも割当る。つまりrangerコマンドquitを割当る。

キー

 キーは``mapなど以下の構文で使う。

map キー rangerコマンド
cmap キー rangerコマンド
pmap キー rangerコマンド
tmap キー rangerコマンド

 入力できる値は以下。

内容 記法 補足
印字可キー q, Q, ? 文字で表現する。Qは<S-q>ではない。
印字不可キー <esc>, <Space>, <TAB>, <F1>, <UP>, <HOME>, <PAGEDOWN>, <INSERT>, <backspace>, <backspace2>, ...
ranger専用 <any>
<bg>, <CR>
修飾キー(モディファイアキー) <C-?>(Ctrl), <S-?>(Shift), <A-?>(Alt)
キーコンボ? 字字, yy, dD, po, ...

 大文字と小文字が混在していた。おそらく同一とみなしている。たとえば<esc><ESC>は同じ。どちらでも可。

 ちなみにアサインしていないキーの一覧は以下のコマンドで確認できる。

$ ranger --list-unused-keys

 ただしキーコンボのパターンが出ない。単一キーと修飾キーのみ。修飾キーは2キーのみ。3キーはない。

対象環境

  • Raspbierry pi 3 Model B+
  • Raspbian stretch 9.0 2018-11-13
  • bash 4.4.12
  • python 2.7.13, pip 9.0.1
  • python3 3.5.3, pip3 9.0.1
  • ranger 1.9.2
$ uname -a
Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux