rcmdnk's blog

Gnu Screen: The Virtual Terminal Manager

ターミナルマルチプレクサであるGNU Screenの安定版がアップデートされ 4.6.0がリリースされました。

GNU Screen 4.6.0

二日前の28日にリリースのアナウンスがメーリングリストに流れていました。 今回も前回のアップデートから半年ほどでリリースです。

細かくはこの後1月26日に4.5.1のバグフィックスリリースがリリースされています。

今回の主なアップデートは以下のもの:

  • Update Unicode wide tables to 9.0
  • Support more serial speeds
  • Improved namespaces support
  • Migrate from fifos to sockets
  • Start viewing scrollback at first line of output

パフォーマンスの向上などがありますが、 最後のスクロールバックに関するアップデートが個人的にはとても便利になったと思います。

これまでのscreenではコピーモードに入り、画面上にCtrl-Bとか、もしくは一気にgg とやると、最終的に行き着く先頭行はスクロールのバッファ分だけ戻った先になっていました。

この時、そのウィンドウでまだバッファ分だけ表示していないと空白が延々と続いて何も無い所にたどり着いてしました。

screenscrollbackold

こんな感じで何も無い所に来てしまって悲しい。 ウィンドウを始めたばっかだとCtrl-Fしても一向に何も現れないので 適当なキーを押して戻るはめに。(もしくは検索を始める。)

これが今回のアップデートで、ggすると バッファを全て埋めていない場合、 最初にそのウィンドウで作業を始めたところまで戻って止まる様になりました。

screenscrollback

こんな感じ。ggだとカーソルは最初のアウトプットの位置に行きますが 画面表示では上半分に空白が出ます。

Ctrl-Bとかで戻っていくと一番上に表示部分がある状態で止まります。

これ、そのウィンドウでの作業をちょっと最初から確認しようとして良く使うので 結構イライラする仕様だったのでこのアップデートはとてもうれしいです。

とりあえずアップグレードしてコピーモードに入りggしてみてください。

Mac Homebrewの文字化け対策版のアップデート

MacのHomebrewではbrew install screenでscreenをインストールできますが screenは日本語表示がちょっと苦手で文字化けが起こります。

その辺のパッチをあてたバージョンが

$ brew install rcmdnk/rcmdnkpac/screenutf8

とするとインストールできる様になっています。 (screenをインストールしてある場合は先にbrew rm screenを実行。)

こちらのものも4.6.0に対応させておきました。

Mac以外で文字化け対策版をインストール

Linux環境などでは文字化け対策版を使いたい場合自分でパッチをあてて コンパイルする必要がありますが、 stow-getを使えば簡単に入れることが出来ます。

まずstow-getをインストール。

$ curl -fsSL https://raw.github.com/rcmdnk/stow-get/install/install.sh| bash

これだと~/usr/local/bin/stow-getがインストールされその後インストールされるものも ~/usr/local/をPrefixとしてインストールするようになります。

場所を変えたい場合は

$ curl -fsSL https://raw.github.com/rcmdnk/stow-get/install/install.sh|  prefix=/usr/local bash

こんな感じでインストール実行時にprefixを指定します。

インストールしたら

$ export PATH=$HOME/usr/local/bin:$PATH

とかしてパスを通し(これを.bashrcとかにも書いておく)、

$ stow-get install screen

とすればパッチをあてた最新版のscreenがインストールされます。

新しいリリースが出たら

$ stow-get upgrade

とすれば自動でアップグレードされます。

MacでHomebrewを使ってない場合、これを使って入れることも出来ます。

Sponsored Links
Sponsored Links

« bash-powerline: Bashのプロンプトをリッチに vim-markdownのアップデート 2017/07 »

}