先日書いた 端末vimでマウスを使う で操作手順を確認しているときに、そういえば GNU Screen でもマウスが使えたことを思い出したので、そのことを再確認したメモです。開発版 GNU Screen をビルドして使っている人向けです。
GNU Screen でのマウス操作については、ターミナルマルチプレクサ Advent Calendar 2011 でかなりやっつけな記事を書きました。
このときは端末のクリックに関する仕様や制限なんてまったく知りませんでした。その後 @kefir_ さんが拡張マウストラッキング対応について精力的に活動されていて、その中に GNU Screen 向けのもあることに気づきました。
GNU ScreenのSGR 1006サポートパッチを投げた。最終的にはこういう形になりました。gist.github.com/3097729
— saitohaさん (@kefir_) 2012年7月19日
ちょうどこの頃 GNU Screen の bugzilla にも SGR 対応パッチが投稿されたのですが、4.0.3 向けだったのでそのままでは適用できずに悔しい思いをしていたところでした。なんというタイミング!
先日screenのbugzillaに投稿されたSGRサポートするパッチ( savannah.gnu.org/bugs/?37206 ) は 4.0.3 用なので、mousetracking のコードが入っている 4.1.0 にはそのままでは適用できない。
— Kazuhiro YOSHIKAWAさん (@yoshikaw) 2012年8月31日
なのでこのパッチを当ててscreen内のvimで 223 桁以降のクリックが認識されたことを確認。≫Support SGR 1006 mouse reporting, for GNU Screen — Gist gist.github.com/3097729
— Kazuhiro YOSHIKAWAさん (@yoshikaw) 2012年8月31日
この時はこのパッチを試すだけの screen をビルドしていて、常用する screen をビルドするスクリプトにこのパッチを追加するのを忘れていました。
横幅が 318 桁のウィンドウ1つで vim(+mouse_sgr) を使う場合はそれほど問題にならないのですが、縦分割した右側の 159 桁のウィンドウで起動した vim だと、やはり端末全体で見たときの 224 桁以降はマウスイベントが認識されませんでした。
以下のスクリーンショットで説明すると、T字型に3つに分割した右下の領域においては、その領域内の右端は桁数的にはクリック可能(159 < 244)にも関わらず、上のウィンドウの vim に colorcolumn で表示している 224 桁目の赤い線より右をクリックしても応答しません。
あのパッチを適用すると、右端の 223 桁以降にマウスカーソルがあってもクリックやスクロールができます。
あ、mousetrack
機能とは関係ない話ですね。。。
0 件のコメント:
コメントを投稿