LoginSignup
1
1

More than 3 years have passed since last update.

Tera Term経由でemacsを使う場合に行がずれる問題

Last updated at Posted at 2020-04-29

Tera Term経由でemacsを使っていると、ミニバッファのリサイズが起きて行方向の表示が崩れることがある。
たとえば、通常はこのように見えているのだけど…
normal.PNG
何かの拍子にこんな感じになってしまう。
abnormal.PNG
ちなみに上記は、4行めでFlycheckの警告が出ている import にカーソルを移動した結果、「Data.Textimportしているけどコード中では使われてないよ」というメッセージがミニバッファに表示されて、emacsがとち狂った様子。カーソル位置にはmainという文字列があるように見えるし、左端の行数表示も6を指しているが、実際にはここは1枚目のキャプチャにおける4行めの先頭であり、importがある。

考えられる原因は以下のような感じだろう。

  • Tera TermのTermTypeと、サーバ側の環境変数TERMは一致しているか?
  • Tera TermのTerminalSizeと、サーバ側のttyが認識している画面の高さ(stty -aの結果)と、emacsが認識している画面の高さ((display-pixel-height)の評価結果)はすべて一致しているか?

しかし、それぞれ調べてみても何も問題がないので、仕方なく「emacsのミニバッファの高さが変わらない」ように設定した(つまり、高さの最大値を1にした)。

(setq max-mini-window-height 1)

これにより、ミニバッファのリサイズが原因で行がずれ、それにより表示が崩れることは回避できた。ちなみに、Flycheckはデフォルトではミニバッファに表示しきれない情報がある場合に新しいバッファを作るようだが、これだと行が崩れることはないので、やはり何らかの理由でミニバッファの高さ情報をうまく処理できていないらしい。
renormal.PNG

この回避方法だと、当然、ミニバッファのリサイズ以外の原因で起こる行ズレには耐えられない。Tera Termとemacsの間で根本的に何が起きているのか知っている方がいたら教えてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1