Closed saitoha closed 12 years ago
@saitoha すばらしい。Good Job.
Nice work!
ところで、このパッチを投稿した意図はどの辺ですか?
その両方になります。 以前Google Group/メール経由で投稿したのですが承認されず、あきらめたくなかったので代理で投稿していただける方を探していたところ、@mattnさんにこちらを紹介していただきました。 また、パッチ自体の問題や改良点をご指摘いただけたらと思います。
good job!
@koron
ところで、このパッチを投稿した意図はどの辺ですか?
私が薦めたからです。MLにメアドが登録されないらしくて投稿代理をお願いされておられたので、レビューもかねてこちらで引き受けるつもりでvim-jpを薦めました。
@saitoha vim_devにpushはしますが、contribute author は @saitoha さんの名前になります。お名前教えて頂けますか(若干ハンドル気味でもok:前例 thinca)。
パッチの内容も目検ですがokだと思います。
vimdevに登録できない件も聞くために メアドも教えてもらったらどうでしょう?
Hayaki Saito user@zuse.jp で投稿しました。アカウント名がuserっていうのがスパムっぽくてだめだったかもしれません。
後でlinuxで確認します。
よろしくおねがいします><
試してみました。
パッチを当て、gnome-terminal のフォントを monospace 1 に設定。:set ttymouse=sgr
set mouse=a
して、1000ax<esc>
で横いっぱいに文字を並べたあと、300文字目くらいをクリックしてみましたが、カーソルが移動出来ませんでした。
すこしずつクリックする位置を左に寄せていったら、222文字目でクリック出来ました。
何か手順が間違ってますでしょうか?
gnome-terminalはSGR形式の拡張マウストラッキングに対応していません。 222桁というのは通常のマウストラッキングでの制限です。 非対応の端末エミュレータへの悪影響はなさそうですね。
SGR形式の拡張マウストラッキングに対応した端末エミュレータはUnix用だと以下の二つがあります。 ・xterm (Patch #277以降) ・mlterm (3.1.2以降)
了解です。試してみます。
mlterm 3.1.2 を入れて試してみましたが、やはり 222 カラム以降が選択出来ませんでした。
xtermで試してみます。
xterm でもダメでした。起動直後に set ttymouse? として sgr と表示されているのでパッチも当たっていて、認識もされているかと思います。
@mattn 検証ありがとうございます。
すみません。xtermはいけました。mouse=a してなかったです>< mlterm も再度試しましたが、xterm2 で認識されていました。
あれ、mlterm、今度はとれた。リサイズが影響したのかな。勘違いっぽいです。
こんなので良いでしょうか。
Hi list.
I've received a patch to support SGR mouse tracking on terminal.
http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#Mouse%20Tracking https://groups.google.com/forum/#!topic/vim_use/lo6PLRUu2Gg
This works well on xterm patch 277 or later.
Currently, vim can't recognize column number of mouse event which is greater than 222. This SGR's patch make it possible. If applied this patch, you can make sure ttymouse is set as 'sgr' on your xterm. And you can select columns greater than 222 with "set mouse=a".
https://gist.github.com/2857753
This patch is written by Hayaki Saito user@zuse.jp. Please check.
Thanks.
BTW, It seems that vim_dev ML does not allow his e-mail address.
そもそもmlterm-3.1.2上だと、ttymouse=xterm2 になってしまってます。
@mattn 英文ありがとうございます。 あと、未対応の端末でも正常に動作することを強調したいので、
With this mouse mode, vim will accept both "Normal (xterm2)" and "SGR 1006" styled mouse reporting.
に相当する文章をつけくわえていただければと思います。
mltermはDA2というクエリによって、あなたは誰ですか、と訊かれたときに、xtermのパッチレベル96を返します。なのでパッチ適用済みでも自動設定ではxterm2となるのは想定される動作です。ただしもしmlterm3.1.2以降で明示的にttymouse=sgrとしてもうまく動作しないとしたらちょっと問題なので、こちらで確認してみます。
ttymouse=sgrとしてもうまく動作しないとしたらちょっと問題なので、こちらで確認してみます。
この部分確認します。
あ、いけましたw すみません。。。
ありがとうございます!
BTW, It seems that vim_dev ML does not allow his e-mail address.
He is not subscribed?
と返信がきたようですが、
以下のスクリーンショットを示して、 http://zuse.jp/vimdev.png
I started subscribing to vim_dev on 25 May, but my account (user@zuse.jp) seems to be banned on 27 May.
と、伝えていただければと思います。 よろしくおねがいします。
やはりリストの件は直メールで個人的に処理すればよさそうな気がしてきました。 アドレスをみつけたので送っておきます。
MLでの反応のとおりBram氏も身に覚えのないbanだったようで、無事解決しました。ご協力ありがとうございました。現在ではメールサーバがSPF/DKIMに対応していないとGoogleがspamと判断するようです。
反応遅れました。すみません。 解決した様で良かったです。
TODOリストに入りました。
Patch for SGR mouse support. (Hayaki Saito, mail from Yakuhiro Matsumoto, 2012 Jul 13)
Patch 7.3.632 で入りました! https://groups.google.com/d/topic/vim_dev/9VzDNmdd-7I/discussion
@saitoha おめでとうございます。 @mattn お疲れ様でした。
皆様ありがとうございました。以後、端末側でも普及するよう、働きかけていきます。
(@saitoha さん、後で流れが追えるようにこちらにもリンク貼らせてもらいました。)
先日のttymouse=sgrがtermresponseで無効化される件と、has('mouse_urxvt')、has('mouse_sgr')のサポートをvimdevに投稿しました。 [https://twitter.com/kefir/status/248374269271232512](https://twitter.com/kefir_/status/248374269271232512)
https://groups.google.com/d/topic/vim_dev/sftJXK8mXvA/discussion
TODOが更新されましたが、SGR 1006の自動認識の挙動を修正する件も入っています。
Patch for SGR mouse with older xterm. (Hayaki Saito, 2012 Sep 19)
SGR 1006のtermresponseのバグの件で修正が入りました(Patch 7.3.699)。 また、has('mouse_urxvt')とhas('mouse_sgr')がサポートされるようになりました(Patch 7.3.700)。 https://groups.google.com/forum/?fromgroups=#!topic/vim_dev/u7c-Ad4xKrU https://groups.google.com/forum/?fromgroups=#!topic/vim_dev/idUbycj_4Bw
閉じても... いいのよ...
@saitoha 「BESTターミナルエミュレータ芸人Vimmer of the Year」にノミネートされました。 @mattn 「BESTおっさんギャグ芸人Vimmer of the Year」にぎりぎりノミネートされました。
ありがとうございます。
パッチ:https://gist.github.com/2857753
以前このパッチをGoogle Group経由でvim_devに投稿しようとしたところ、承認されなかった(投稿ができなかった)模様です。
参考:224桁問題と拡張マウストラッキングについて
拡張マウストラッキングは、xtermにおいて、224以上の座標をアプリケーションが取得できない仕様上の問題を回避するために考案されたものです。
xtermのX10互換形式およびノーマルトラッキング形式(vimのttymouse=xterm/xterm2)では、マウスレポーティングは以下のように表現されます。
マウス位置座標はCx、Cyで表現され、それぞれ1バイト固定となります。 さらに印字文字で表現するため+32のオフセットが加算され、224以上の座標が表現できません。
これを回避するために、UTF8(1005)形式(座標値をUTF-8の要領でエンコードする)が考案されました。tmux、Poderosaなどの端末が対応しましたが、のちにこの仕様は端末のエンコーディングによっては認識できなくなるなど、いくつかの問題があることが判明し、現在では壊れた仕様とみなされています。
これを解決するためにrxvt-unicodeから整数リテラル表現Dx, Dyを使用して
とする方法が提案され、多くの端末がこれに追従しました。Vimでもttymouse=urxvtとして実装されています。 しかし現実には、このマウスレポートが誤ってエコーバックされたときに問題が発生すること、いくつかの既存アプリケーション(emacs等)での対応が困難であることなど、またしても不備があることが判明しました。
そこで現在新しく提案されている方法が、xtermによるSGR(1006)形式
という経緯になります。
さらにくわしいことついては、下記をご参照ください。
https://groups.google.com/forum/#!topic/vim_use/lo6PLRUu2Gg http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#Mouse%20Tracking http://togetter.com/li/290073