問題点
いまどのScreenにいるか分かりにくい。
解決策1 バーを表示する
.screenrcを少しいじってみる
caption always "%{b RK} %y/%m/%d(%D)%c:%s %{bu dr} | %-w%{=bu CK}%n %t%{-}%+w"
結果はこちら
08/06/15(Sun) 3:34:10 | 0 bash 1 bash
これは人のページを見ながらずいぶん前に書いたもの 改めてみてみる。
問題になっているのは
%{bu dr} | %-w%{=bu CK}%n %t%{-}%+w
後半のここらへん
%{bu dr} | %-w%{=bu CK}%n %t%{-}%+w
現在のWindowより前は %{bu dr} (bold underline default red) で 以降は {=bu CK} (bold underline Cyan blacK) でって感じ?
解決策2 プロンプトを変えてみる
.bashrcを書き換えてみる
分かっていること
- 環境変数WINDOWに現在のScreen番号が入っていること
- .bashrcはbashのシェルスクリプト
- screenされた時TERMはSCREENになっている
- 環境変数PS1をいじるとプロンプトの内容が変わる
都合よくdebianのデフォルトの.bashrcはTERMで分岐していたので、そこにScreenの場合を書けば良かった。
colors=(41 44 45 40) col_str=${colors[$(($WINDOW%4))]} PS1='${debian_chroot:+($debian_chroot)}\u@\h_\[\033[${col_str};1;37m\]S$WINDOW\[\033[0m\]:\w\$ '
1行目は配列を作っている。 これが背景色を表している
で、2行目でWindow番号の剰余を取っている。もしかしたらこれはPS1でワンライナーにかけるのかもしれないけど、ごちゃごちゃしそうだから却下。(もう十分ごちゃごちゃしてる)
肝なのは3行目
僕が追加したのは
_\[\033[${col_str};1;37m\]S$WINDOW\[\033[0m\]:\w\$
ここだね。
\[\033[${col_str};1;37m\] [\033[0m\]
特にこの部分
\[\033[A;1;Bm\]
- A:背景色
- B:文字色
のようだ
間の1ってのは太字?
2行目は装飾クリア命令