yunomuのブログ

趣味のこと

縦分割できるscreenとあと設定とか

だいたい長文を書くときは酒を飲んでいるわけなんですけど、ここを見ていた同僚から「書いてる途中の酒量を明らかにしろ」って言われたので、書いてみようか。
ここまでは0ml。いやうそ、ビール2口飲みました。

で、ネタ作るための作業してるうちに500ml缶が空いた。やっぱやめましょうこれ。

最近またscreenを使う機会が増えてきたので色々遊んでいます。
普段はMBPのターミナルを使ってるので、ターミナルのタブでもいいかなぁと思いながら使ってたんですが、何気にLinuxも使ったりするし、3つ4つになるとやっぱりscreenの方がわかりやすいし。いや分かりやすさは好みですけど。

あと、画面の縦分割ができるようになったというのを聞いてっていうか見て、いいなぁって。なんとなくそのバージョンはパッケージから入らないから避けてたんですけど。
ということで縦分割できるやつをインストールしてみました。

# git clone git://git.sv.gnu.org/screen.git
# cd screen/src

configureが無いけど、autoconfっぽい。のでautoconfしてみる。
autoconfが入ってない場合は、yumとかでautoconfとautomakeを入れる。automakeを入れないとaclocalが無いとかでautoconfがコケます。

# autoconf
# ./configure

で、ダメだった。

autogen.shってファイルがなんか怪しいのでとりあえず実行してみる。autoconfって実は初めて使ったかもしれないんですけど、こういうものなんですかね?

# sh autogen.sh

なんかWARNINGがいっぱい出たけど、何かが終わったっぽい。あとはいつも通りでした。

# ./configure
# make
# make install

できた。

で、設定……は、GitHubに上げてるんですけど、
screenrc at master from yunomu/dotfiles - GitHub
これをベースとして~/.rc.d/screenrcとかに保存しておいて、~/.screenrcの中で

source ~/.rc.d/screenrc

とかやるといいというのに複数のサーバに設定してみてやっと気づいた。

というのも、escapeの設定が、私の場合はキーボードによって違うんですよね。
日本語キーボードだとGitHubにある通り

escape "^¥¥¥"

なんですけど、MBPのキーボードだとキー配置が違うので、~/.screenrcの中で

source ~/.rc.d/screenrc
escape ^__

とか書いている。設定内容はどうやら後勝ちらしいです。

で、縦分割ができるようになりました。やったーこれでマニュアル見ながらコード書いたりインタプリタで実行しながらコード書いたりコード見ながらコード書いたりできるぞー!
ってことで、Macの方の設定ファイルがこうなった。

source .rc/screenrc
escape ^__
chdir

split -v
screen
focus
screen
focus

画面広いんだからいっぱい使えばいいじゃんということで、起動時に画面分割して、シェルを2つ立ち上げて、左側の画面にフォーカスがある状態にしておく。chdirは、だいたいしない派だったんだけど、使い方を考えると別にscreenのカレントディレクトリはホームでいいかなと思って。
この辺はそのうちGitHubに上がってるものにマージされていくかもしれない。いやしないか。

それと、zshrcの方もちょっといじる。

preexec() {
	test $STY && echo -ne "\ek${1%% *}\e\\"
}

zshだとこれで実行したコマンドがwindowのタイトルになるらしい。

するとなんかwindowリストが見たくなってきたので表示するようにした。

hardstatus alwayslastline "%w"

あとは割と定番というか、前にとりあえず設定した時のままです。

escapeの設定って、デフォのC-aが使いづらすぎてだいたいみんな変えるから、各々の.screenrcのコピー元とか教えてもらった相手とかの影響をモロに受けるのが面白いですよね。いつぞや書きましたけど、私の.screenrcの元は先輩ので、その元は先生ので、そのあと後輩たちもおおむね誰かのコピーで、私がいた研究室ではみんなescapeはC-¥でした。

書き始めて数日後に書き終わった場合は酒カウントどうなるんですかね。
書き終えた日は0ml、飲んでたのは最初の数行の時だけでした。