GNU screen で沢山の window を選択する
GNU screen は 11 個以上の window を開くと window の選択が面倒になる。0 から 9 番目までの window は「C-a 0」や「C-a 9」で選択できるが、10 番目以降の window は「C-a '」で番号を入力して Enter を入力する必要があり、直感的な操作が出来なくなるからだ。
この対策として screen の man にも例が載っている以下の設定を使う方法がある。例えば「C-a - 0」で window 10 を選択する。これで 20 個までの window を選択可能になる。
bind - command -c minus bind -c minus 0 select 10 bind -c minus 1 select 11 bind -c minus 2 select 12 bind -c minus 3 select 13 bind -c minus 4 select 14 bind -c minus 5 select 15 bind -c minus 6 select 16 bind -c minus 7 select 17 bind -c minus 8 select 18 bind -c minus 9 select 19
この設定で長く満足していたけど、最近 20 個でも window が足りなくなる状況が出てきたので、21 個以上の window を選択できる方法を模索してみた。
最初は 9 の次は 16 進数で a かなと思い、以下のような定義を試してみた。例えば「C-a - a」で window 20 を選択する。しかし f を超えた辺りから番号が分からなくなってくるので使用を断念…。
bind -c minus a select 20 bind -c minus b select 21 bind -c minus c select 22 bind -c minus d select 23 bind -c minus e select 24 bind -c minus f select 25 bind -c minus g select 26 bind -c minus h select 27 bind -c minus i select 28 bind -c minus j select 29
色々と試行錯誤した結果、以下のような定義を使うことにしてみた。例えば「C-a - - 0」で window 20 を選択する。これで 30 個までの windows を選択可能になる。
bind - command -c minus bind -c minus 0 select 10 ...中略... bind -c minus 9 select 19 bind -c minus - command -c minus2 bind -c minus2 0 select 20 bind -c minus2 1 select 21 bind -c minus2 2 select 22 bind -c minus2 3 select 23 bind -c minus2 4 select 24 bind -c minus2 5 select 25 bind -c minus2 6 select 26 bind -c minus2 7 select 27 bind -c minus2 8 select 28 bind -c minus2 9 select 29
つまり、ひとつの - が +10 を表すわけだ。同じように - を増やしていくことで 31 個以上の window を選択できるようにも可能だが、さすがに window の状態を把握できなくなりそうなので止めといた。しばらくは、この設定で使ってみる予定。
ちなみに、上の説明では C-a を使ったけど、個人的には C-t を使ってる。