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 prev
とlayout next
で順次切り替え、いらなくなったレイアウトはlayout remove
で殺せる。layout attach
は最後に使っていたレイアウトを選択、layout show
はレイアウトの情報を表示、となっている。
結構多機能だがなぜかリスト機能が見つからないのが謎だ。どれだけレイアウトを作ったのか分からなくなってしまう。とはいえ、実際にはレイアウトなんて1つで十分な気もするので、余り気にしなくても良いのかも知れない。
なお、レイアウト情報はスクリーンを終了すると消えてしてしまうようだ。セッションファイルのように外部に書き出せれば便利なのだが。
他の機能としてはsplit -v
で縦にリージョンを切ることが可能になった。使い方によっては便利かも知れない。
普段はこんなことしないが、せっかくなので無駄に分割してみた