trouble on ess-mode on emacs on GNU screen

GNU screen上でemacs上でESSモードを使っている時という非常に限定された環境での話。

ESSモードでRを起動していろいろ作業していると、カーソルの挙動がおかしくなることがある。
画面上のカーソルの位置と、実際のカーソルの位置が合わず、文字が変なところに挿入されたり
編集した画面上の文字と実際の文字が合わなかったりする。
C-eで移動してもカーソルが文の途中で止まってしまように見えて、実際は文末にいたりする。
C-lで正しい表示に直すことはできるのだが、編集しているとまたすぐおかしくなる。

普通に使っていると大丈夫なのだが、長時間使っているうちにいつのまにかこの現象が始まり、
いったん始まるとバッファをemacsを終了しないと直せない、という再現性のあまりない症状で、
非常にストレスフルであったのだが、ようやく原因が判明?

ESSモードのバグかなにかで、作業中、時折emacsデバッグモードが起動するのだが、このとき適切に終了していないと、コマンドが再帰編集モードに入ってしまう模様。
それに気付かずに使っていて多重再帰状態になってしまっていたりしたのだが、この再帰状態でESSモードのバッファを編集しようという際におかしくなる場合がある、らしい。
手動でrecursive-editにしても再現するようなしないようないまいちな状態だが、abort-recursive-editコマンドによっておかしくなっていたemacs再帰モードを終了した所、この挙動はでなくなった。

ちなみに再帰モードになっていると、mode-lineのバッファの編集モードの表記が[]で囲まれる。多重再帰状態では[...]となっていたりする。


また、screen上でない普通のターミナルで再帰モードになっていても、ESS上でカーソルの挙動がおかしくなるといった症状は確認できなかったし、screen上でもESSモード以外なら特に変な挙動は示さない模様。なんかいろいろな条件が複雑に影響しているような気がする。


環境は
MacOSX leopard 10.5.5
Terminal.app 2.0.1(240)
Screen 4.00.03 (FAU) 23-Oct-06
Emacs.app (Carbon Emacs) 2008-07-18
GNU Emacs 22.2.50.1 (i386-apple-darwin9.4.0, Carbon Version 1.6.0)
ESS mode たぶん 5.3.8