_ 私の愛してやまないラブラブ 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 文を使えばもっと短くできると思うが、別にこれでいいのでそのまま放置。
_ 他の設定:
_ いろいろ書いたけど、私が主張したいのはこれ:
_ 結論: 昔の日記のオイラはオカシイ。
メールはこちらへ...[シンX]
この日記は、GNSを使用して作成されています。
2003年2月1日より 名の訪問