GNU screenのレイアウトを保存する為に4.01.00develを入れてみた

screenを使っていると、エディタでコード書きながら、別ウィンドウのシェルでそれをちょこちょこと実行する、なんてことが良くあるのだが、個人的にはウィンドウ全部を切り替えるよりも、画面の下の方にでも小さくsplitしたリージョンを出して、focusで適当に切り替えながら開発する方が楽に感じる。しかし、リージョンのレイアウトは現在のStableでは保存されないため、1度デタッチしてしまうと次にリタッチした際にもう1度配置をし直す必要が発生するのだが、これが面倒である。最新版のdevelには色々と新効能が増えていて、レイアウトの保存が出来るようになっているようなので試しに入れてみた。

最新版はGITリポジトリから取ってくる。

% git clone git://git.savannah.gnu.org/screen.git

そのままcd screen/srcして./autogen.shを実行してconfigureを作ってもらう。

% screen/src
% ./autogen.sh

confiugreはそれぞれお好みだが、256色な人は--enable-colors256を忘れないように。

% ./configure --enable-colors256

あとはmakeするだけ。

% make
% sudo make install

実際に何が出来るかについてはドキュメントがまだ無いので、ソースコードを読んで適当に予想する。process.cあたりがそれ。

一応自分で調べてみた範囲で説明すると、まずメインとなるのはlayoutコマンドのようだ。

screenが起動した段階ではレイアウト情報がまだ存在しないので、最初にlayout newなどしてレイアウトを作る。一度作ってしまえばautosaveが働くようなので、デタッチしても問題ない。レイアウトに名前を付ける場合はlayout save nameとか、あるいはnewする段階で予め名前を渡しておくと、layout selectで名前を指定して再レイアウトできるようだ。名前が付いていなくてもnewした順に番号が付いていくのでそれでも選択できる。他はlayout autosaveで自動保存するかどうかの設定、layout prevlayout nextで順次切り替え、いらなくなったレイアウトはlayout removeで殺せる。layout attachは最後に使っていたレイアウトを選択、layout showはレイアウトの情報を表示、となっている。

結構多機能だがなぜかリスト機能が見つからないのが謎だ。どれだけレイアウトを作ったのか分からなくなってしまう。とはいえ、実際にはレイアウトなんて1つで十分な気もするので、余り気にしなくても良いのかも知れない。

なお、レイアウト情報はスクリーンを終了すると消えてしてしまうようだ。セッションファイルのように外部に書き出せれば便利なのだが。

他の機能としてはsplit -vで縦にリージョンを切ることが可能になった。使い方によっては便利かも知れない。

普段はこんなことしないが、せっかくなので無駄に分割してみた

スクリーンショット
スクリーンショット