アキレス亀日記 - 2007/04b Diary
「アキレスの亀を追いかける日々」
2007/04版 その2

[前日へ続く]

2007/04/11 (水)


2007/04/12 (木)


2007/04/13 (金)


2007/04/14 (土)


2007/04/15 (日)


2007/04/16 (月)


2007/04/17 (火)


2007/04/18 (水)


2007/04/19 (木)

これがオイラの GNU Screen の設定だ!!!

_ 私の愛してやまないラブラブ GNU Screen タンが 単に端末を増やしたりするだけのレガシーアプリケーションだと 勘違いされそうなので、 「いかに Screen が素晴らしいか」を世にしらしめるために、オイラの設定を晒してみる。 まあ、ほとんど過去の日記ネタであるんだけれども。ちなみに、 私のデスクトップには naoya さんのシンプルデスクトップにあるような ようなゴミ箱すらありませんので ;-) 個人的には、shinichiro.h さん(壮行会行けば良かった)と Zinnia 君の 設定を見てみたい。今度見せて。

_ まずは大事な .screenrc から:

bind . source $HOME/.screen-setting
source $HOME/.screen-setting
source $HOME/.screen-prefix

screen -t root    0 su -
screen -t w3m     1 $HOME/script/screen-w3m-server.sh
screen -t emacs   2 emacs -nw
screen 
screen -t dic 9 rdic $HOME/RDIC/eijiro52.euc $HOME/RDIC/gendai.euc $HOME/RDIC/waeiji52.euc 
select 3
select 1

あれ、短い?

Screen を普通に起動すると、root 作業用ウィンドウ(0番)と w3m ウィンドウ(1番)と Emacs ウィンドウ(2番)と bash ウィンドウ(3番)と rdic(英和/和英/国語辞書引きソフト) ウィンドウ(9番) を起動して、ウィンドウ3にフォーカスを移してすぐにウィンドウ1に移る。 これは“C-a C-a”(other)でウィンドウ1と3に切り替えられるようにための小技。 root ウィンドウは、どうせ自分しか使わないマシンなのでそうしてるだけ。 rdic を9番にしてるのは、4〜8で一時的にウィンドウを生成するかもしれないから。

ところで .screenrc のポイントは、設定ファイルを

source $HOME/.screen-setting
source $HOME/.screen-prefix

としてわざと分けているところにあります。 Screen 起動中に設定を変更したい場合は .screen-setting に 書くようにして、1行目の

bind . source $HOME/.screen-setting

で、“C-a .”とすることで設定ファイルを再読み込みできるようにするわけ。 というわけで、あまり使われなさそうな source の使い道は、実はあるんですね。

_ 次は肝心の .screen-setting. このファイルの中には、簡単なシェルスクリプト呼び出しを埋め込みまくっている。ポイント:

#
# Cyclic traversal
#
bind              ^n   eval "next" "echo 'Next window'"     "command -c traversal"
bind              ^p   eval "prev" "echo 'Previous window'" "command -c traversal"
bind -c traversal ^n   eval "next" "echo 'Next window'"     "command -c traversal"
bind -c traversal ^p   eval "prev" "echo 'Previous window'" "command -c traversal"
bind -c traversal ^a   command

#
# Window motion
#
bind           ^f eval "exec $HOME/script/screen-move-window.sh forward " "command -c window"
bind           ^b eval "exec $HOME/script/screen-move-window.sh backward" "command -c window"
bind -c window ^f eval "exec $HOME/script/screen-move-window.sh forward " "command -c window"
bind -c window ^b eval "exec $HOME/script/screen-move-window.sh backward" "command -c window"
bind -c window ^a command

bind o  focus
bind ^a eval 'focus top' 'other'
bind 1  eval 'focus top' 'select 1'
bind 2  eval 'focus top' 'select 2'
bind 3  eval 'focus top' 'select 3'
bind 4  eval 'focus top' 'select 4'
bind 5  eval 'focus top' 'select 5'
bind 6  eval 'focus top' 'select 6'
bind 7  eval 'focus top' 'select 7'
bind 8  eval 'focus top' 'select 8'
bind 9  eval 'focus top' 'select 9'
bind 0  eval 'focus top' 'select 0'

_ .screen-prefix はこんな感じ:

bind s
bind ^s command -c prefix
bind -c prefix ^a command
bind -c prefix 0 select 0
bind -c prefix 1 select 1
bind -c prefix 2 select 2
bind -c prefix 3 select 3
bind -c prefix 4 select 4
bind -c prefix 5 select 5
bind -c prefix 6 select 6
bind -c prefix 7 select 7
bind -c prefix 8 select 8
bind -c prefix 9 select 9
bind -c prefix a select a
bind -c prefix b select b
bind -c prefix c select c
bind -c prefix d select d
bind -c prefix e select e
bind -c prefix f select f
bind -c prefix g select g
bind -c prefix h select h
bind -c prefix i select i
bind -c prefix j select j
bind -c prefix k select k
bind -c prefix l select l
bind -c prefix m select m
bind -c prefix n select n
bind -c prefix o select o
bind -c prefix p select p
bind -c prefix q select q
bind -c prefix r select r
bind -c prefix s select s
bind -c prefix t select t
bind -c prefix u select u
bind -c prefix v select v
bind -c prefix w select w
bind -c prefix x select x
bind -c prefix y select y
bind -c prefix z select z

“C-a s 文字”で、指定した文字からはじまるウィンドウ名のウィンドウに移動する。 たくさん窓を開いたときでも楽に移動できるための小手先テク。 bsh の for 文を使えばもっと短くできると思うが、別にこれでいいのでそのまま放置。

_ 他の設定:

_ いろいろ書いたけど、私が主張したいのはこれ:

_ 結論: 昔の日記のオイラはオカシイ


2007/04/20 (金)


[後日へ続く]

[最新版へ]

メールはこちらへ...[シンX]

この日記は、GNSを使用して作成されています。

2003年2月1日より 名の訪問