アキレス亀日記 - 2004/06a Diary
「アキレスの亀を追いかける日々」
2004/06版 その1

[前日へ続く]

2004/06/01 (火)

_ 天花の情報は、どうやら地上デジタルデータ放送で終日送られているようだ。 帯域の無駄使いだよ全く。

_ で、そいつをつらつらと眺めていたら(←読むなよ)、 天花の母親(片平なぎさ)が吉祥寺で武蔵野うどん屋を開いていたってよ! げー今度は武蔵野うどんかよ。俺への嫌がらせのつもりか。

[Screen] ウィンドウ移動を楽にする

_ Zinnia 君の日記を読んでいて、C-n や C-p 移動を多少楽にする方法を考えてみました:

bind ^n eval "next" "command -c next"
bind ^p eval "prev" "command -c prev"
bind -c next ^n eval "next" "command -c next"
bind -c next ^p eval "prev" "command -c prev"
bind -c next ^a command
bind -c prev ^p eval "prev" "command -c prev"
bind -c prev ^n eval "next" "command -c next"
bind -c prev ^a command
C-a C-n (あるいは C-a C-p) したら、あとは C-n と C-p だけでウィンドウを移動できます (C-a 以外のキーで移動モードから抜ける)。 でも、使いやすさから考えると、 素直に windowlist を使う方がよいかもしれません。

_ また、タイトルのプレフィックス1文字を指定したら、 該当するウィンドウへ前方検索移動するようなキーバインドも設定できます。 こんな力技になりますが:

#!/bin/sh

screen -X bind s command -c prefix
screen -X bind -c prefix ^a command
for i in a b c d e f g h i j k l m n o p q r s t u v w x y z ; do 
  screen -X bind -c prefix $i eval "next" "next" "prev" "select $i"
done
“C-a s アルファベット1文字”とすれば、指定した1文字がプレフィックスであるようなタイトルをサーチし、 見つかった場合はそのウィンドウへ、 見つからなかった場合は次のウィンドウへ進みます。 結構いいかも。わざわざ "next" "next" "prev" しているところに実は意味があります。 でも other の挙動がいまいち。前方検索する必要がない場合は "next" "next" "prev" を外してみてください。

_ ところで、こういう移動をしていると、よく自分がいまどこのウィンドウにいるのかが わからなくなりますよね。 そこで、caption を使って現在位置を把握しやすくしましょう:

caption always "%{= wg} %-w%{=bu dr}%n %t%{-}%+w %= %{=b wb}%y/%m/%d(%D) %{=b wm}%c"
これは、ウィンドウ一覧と現在ウィンドウのタブ風表示をして、 さらに現在日時を表示するような caption の一例です。 caption は、デフォルトでは画面を split したときだけ表示(splitonly)されるのですが、 それを常に表示するように always 指定しています。 caption などで使用できるエスケープ文字の解説はまた後日(man の String Escapes に載ってます)。

_ 追記: 解説書きました

いろいろ

_ ぎゃー、昨日のスジナシ録画し忘れたー!!!

_ アットホーム・ダッド、イイ!


2004/06/02 (水)

いろいろ

_ もうそろそろ寝よう(8時だよ

_ 昨日の循環移動ネタって、 これで済むじゃん:

bind ^n eval "next" "command -c move"
bind ^p eval "prev" "command -c move"
bind -c move ^n eval "next" "command -c move"
bind -c move ^p eval "prev" "command -c move"
bind -c move ^a command
ところで リンク先の修正ありがとうございました ^^;

_ 瀧真語さんの日記に 度々登場する、たけし軍団風ニックネームの「N澤空集合」さんがずっと気になっている。 どんな方なのか。

_ おのれー MEXT め、しょーもない法案ほいほいと通しやがって。 エイベックスちゃん、浮島に趣味の悪い金字塔立てて喜んでたら、 今度は沈みそうなんで助けてくださいってか? たまごっち的企業など勝手に傾いて沈めばいい。

_ 滝川クリステルのメガネ壁紙 (via ナフタリンズオオサカ東京出張版)。


2004/06/03 (木)

_ すばらしい。 んじゃ私はこれまでどおり日記に思い付いたものをだらだらと書いて、 それをまとめてもらうということで(ひどい)。 2年前にすでに bind -c を使った例を書いていたとは、 さすがはパイオニアです。

_ CBCテレビのローカルニュースのトップが「珍しい黒白の毛交じるヤギ、名古屋・緑区で捕獲 品種は不明」だった。 全国ニュースもこういう愉快なヒマネタで始まってほしいものだ。

[Screen] caption について

_ 私の caption のケバケバしさが一部評判(苦笑)なので、 改造のヒントになるように、ちょっとくどい解説をしてみましょう。 眠いので、冗長かつ推敲不足気味モードで。一応再掲:

caption always "%{= wg} %-w%{=bu dr}%n %t%{-}%+w %= %{=b wb}%y/%m/%d(%D) %{=b wm}%c"
これ自体は、実は 2ch の screen スレの人達の例を参考にして 見よう見まねでいじってみたものだったりするんですが。

_ caption などで使うことができるエスケープ文字の一覧はman などで読めます。 “%{〜}”の形のものは、直後に続く文字列の色や属性を変更するもので、後程解説します。 この文字列は取り除いて考えるとまだわかりやすいはず。

_ %w と書くと全部のウィンドウ一覧を表します。ちなみに %w の間に L を入れる(%Lw)と、 各ウィンドウのフラグ(現在表示中であるとか、監視中であるとかを1文字で表現するもの)を 表示できますが、この設定をすると表示が冗長になるので私は使っていません。 L の場合と同様に %-w%+w と書くと、 それぞれ「現在ウィンドウより前のウィンドウ全部」と 「後ろのウィンドウ全部」を表示できます。さて、現在のウィンドウ番号は %n, そのタイトルは %t となりますので、実は

%w
%-w %n $t %+w
と全く同じということになります。 なぜこういう「わかち書き」が用意されているかというと、 前述の“%{〜}”を各シーケンスの間に置くことで、 現在のウィンドウとその他のウィンドウの表示の仕方を変えることができるからなんですね。

_ %y 以降のものは、表示してみればわかるとおり現在年月日と時刻で、 ウィンドウリストと現在時刻の間に %= を置くことで、 それらを左右に配置して余った部分を空白で埋めます。ここまでで表示用文字列に関する説明はおしまい。

_ さて、次は属性と色を指定するエスケープ文字 %{〜} について。例えば

%{=bu dr}
の中の bu は、「現在の属性を underline 付き bold にする」ことを意味し、一方その後ろの dr は、「背景色を端末のデフォルトに、文字色を red にする」ことを意味します。 = 以外に +- 等を使って 属性の付加や除去を行うことができます、が私は使ったことがありません。 もっと詳しく説明したいんですが……、 ま、いろいろ指定できますんで適当にいじってみて調べてみてください(ひどい)。 %{〜} の中でちょっと変っているのが %{-} です。これは 「最後の属性/色変更をする前の属性と色に戻す」もので、 上述の例では、これを使って現在のウィンドウ文字列の反転表示から元の表示に戻しています。

_ 実は、最近は上の例とは違うものを使っています。こんな感じ:

caption always "%?%F%{= wg}%:%{= ww}%? %-w%{=bu dr}%n %t%{-}%+w %= %?%F%{=b .b}%:%{..}%?%y/%m/%d(%D) %?%F%{wm}%:%{..}%?%c"
これをバッドノウハウと呼ばずして何と言おうか。 %? がやたらと登場しているため、意味不明さと不気味さを醸し出しています。 あれ、これに設定しなおしても、さっきのと同じケバい caption じゃないのって? 実は全然違うことが後でわかりますよ。 ふふふふふ(c)福田氏

_ さて %? ですが、これは条件によって表示するかどうかを決めるものです。

%?   A   %?
あるいは
%?   B   %:   C   %?
という書式で記述します。ここで、この中の A 〜 C は「条件兼表示文字列」を表します。 前者の場合は 「A の中のエスケープ文字が空文字以外に展開されるならば、A を表示」し、 後者は「B の中のエスケープ文字が空文字以外に展開されたら B を表示し、さもなければ C を表示」する ことを意味します(ようするに 最初の %? が if-節の始まり %: は else-節の始まりということ)。 つまり、条件自体を表示するという、私にはとても思いもつかない海の向こうの びっくりアイデアで条件分岐を実現しています。うーんすごい(のか?

_ 条件の中に見慣れない %F がありますが、これは 「現在のフォーカスがあるウィンドウならば条件を true」にする特殊なエスケープ文字です。 今現在の表示が split されていなけれが、表示中のウィンドウには必ずフォーカスがあります。 一方、split で画面を分割(リージョン分割)されていた場合は、 そのリージョンのどちらかにフォーカスがあるはずです。

_ リージョン分割に馴染みが無い人は、一度“C-a S”とやってみてください。 リージョン分割すると、各リージョン毎に caption が付くのですが、 分割してみたらどうなりましたか。 この caption だと、フォーカスがある方にウィンドウリストが表示されましたが、 もう一方のフォーカスから外れたリージョンには、現在ウィンドウのタイトルだけがぽつねんと表示されている だけでしょう。 次にフォーカスを“C-a TAB”として切り替えてみてください。 フォーカスのあるリージョンにケバい caption が移ったはずです。 これは、ファーカスがある方のリージョンでは if-節の中の %F を評価したら true になるのに対し、一方のリージョンでは false になるためで、 ゆえにそれぞれの場合の文字の色/属性指定が切り換えて表示できるわけです。 これでどこにフォーカスがあるのかが一目瞭然ですね。

_ 条件の中に“%n %t”とか入れたらいいのにと思うかもしれませんが、 この文字列は必ず展開できてしまうため、else 節が無視されてしまうんです。 この辺が「条件兼表示文字列」の限界でしょうか。

_ 他にも、caption では 初代 Screen スレの 930 さんの ように biff 情報を表示させたり、 さらには backtick の出力を表示出来てしまいます。 高機能過ぎて全然使いこなせません。新たな挑戦者を求む(笑


2004/06/04 (金)

タイトル変えました

_ ずっと、あの凝ったタイトルだと 「泡沫サイトのくせして自己主張だけはいっちょまえだな」って気がしてた (i.e. 名前負けしてた)んで略称を正式タイトルにすることにしました。 旧タイトル、そして考えていただいた菱さん、ありがとう。

_ 普通の会話とちがって、チャットを正常に行う技術はとても難しい、ということが あまり認識されていないような気がする。

_ そもそも、飲み会などを想像してもらえばわかるが、多人数での会話は簡単にフォークする。 我々はひとつふたつの会話にしか集中できないが、 だから、振られると嫌な話題には聴こえないふりをすることが許される。

_ チャットだと、なんの繊細さもなく、そうやって枝わかれした会話を時系列順に並べてしまうから、 各会話の文脈を正確に把握しなきゃならない。さらには、新参者だと阻害感を受けるし、 苦手な人物も簡単に入ってくるし、 雄弁になりすぎた回もログに残されて後悔するし、 嫌な話題を振られたら黙ってお風呂に入るふりをしなきゃならない。

_ 「チャットでこんなこと言われても勘違いしない/させないようにするマニュアル」。 読んでもつまらなそうだなあ。 ボキャブラリーの足りなさも勘違いの元だから、 作文コンクールに入選したとか、 あるいは国語の点数連続5回満点だった人だけ許可するといい。 優等生限定チャット。 TVインタビューを受けた東大生口調の理屈っぽいチャットになりそうで、 はっきりいってそんなチャットには絶対参加したくありません。 しゃべり場よりも嫌かも。いやどっちもどっちだ。

いろいろ

_ caption をいじってたらこんなんになってしもうた:

caption always "%+0<%?%F%:%{= wr} %n %t%{ww}%?%?%F%{= wg}%:%{= ww}%? %-w%?%F%{=u dr}%?%50>%n %t%{-}%+w%65< %=%?%F%{.b}%?%y/%m/%d(%D) %?%F%{.m}%?%c%?%F%{wd}%?%? [%0`]%?"
書いた本人ですらまともに parse できないという。 ちなみに“%? [%0`]%?”は backtick のテスト用。

_ 上の例では %50>%65< という記述を入れることで、 左から65パーセントの領域に現在ウィンドウとその前後のウィンドウを表示します。 ウィンドウ移動をすると、ウィンドウリストもちゃんとスクロールするので、 ウィンドウ枚数が大量にあるときはかなり便利なはず。


2004/06/05 (土)


2004/06/06 (日)

チベット

_ なにー、チベットはAB型が多いって!!! 素晴しいぞチベット!(←同じくAB型なやつ


2004/06/07 (月)

やんだぐなる

_ 著しくやんだぐなってます。誰か私を癒してください


2004/06/08 (火)

_ 不眠地獄。

_ ついに Zinnia君の 「GNU Screen4完全攻略」が公開されました。 すばらしい。

大失敗

_ あー、もうやる気が起きない。

_ ここ最近精神的にかなり参ってたのに、 追い撃ちをかけるような大失敗を何個もやらかしてしまってもう何が何やらだ。 ああ、これが自己責任なのか。あまりの愚かさに、 奮い立たせた気力もすっかり萎えた。 ほんとに誰かに癒してもらいたい気分だ。

_ 当分ここの更新がないかもしれません。ごめんなさい。


2004/06/09 (水)


2004/06/10 (木)


[後日へ続く]

[最新版へ]

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

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

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