スポンサーリンク
MobaXtermからmosh接続でUbuntuサーバにアクセスしたところ、画面表示が崩れる(改行位置がおかしい・一番下の行が二重に表示される、色つきの文字が残る、文字の表示が更新されない、など)問題が発生しました。
ものすごく致命的な問題ではなかったものの、そろそろどうにかしたいと思い始めたので、いろいろ試してみることにしました。
スポンサーリンク
表示が崩れる
Ubuntu 16.04サーバーにMobaXtermからmoshを利用して接続した際、表示が崩れることが分かりました。特に、byobuを利用した際の一番下の行(status line)が2重に表示されてしまう点が分かりやすかったです。また、各行の1文字目が右端に表示されてしまうのも印象的です。しかし、なんとも説明しにくい症状でした。
byobuの一番下に出る表示が分かりやすいのですが、時計の部分は、その数値を更新しようとして、前の文字を消せず、新しい値が下の行に出てしまっているような雰囲気であり、一度描画した文字を消せていない、描画の更新・上書きに問題があるように見えます。
また、行の先頭の文字が一番右に行ってしまっている問題は、表示領域の横幅の計算をミスしているようにも、文字コード・改行文字的な問題による1文字ずれなどにも見えます。
試した対策
ひとまず、いろいろとMobaXterm側の設定変更を中心に試してみることにしました。
途中からメモしたものです:
- MobaXtermを最新版(v10.2)にアップデート
- Skinの変更
- 「Backspace sends ^H」をオフに
- Terminal typeをxtermからxterm-r6やESC[n~やByobuに
- MoshのCharsetをautoからen_US.UTF-8に変更(ja_JP.UTF-8にすると接続失敗)
- スクロールバーを非表示にしてみたところ、改行位置問題は解消、ステータスラインは解決せず
SSHならうまく行く
「そういえばSSH接続だとどうなるのかな?」とふと、Mosh接続の設定ではなく、普通にSSH接続の設定をMobaXterm上に作成し、試してみました。すると、表示崩れは発生しませんでした。
継続調査
現状、常にMoshを使っていたので、ひとまずMoshを使わなくて良さそうな状況ではSSH接続を使うことにしました。普段の不便は大きく解消することができました。
しかしこれではMoshを使う際に困るままなので、また後々調査します。
追記:解決
こちらの記事の対策で、今回取り組んだ問題もまとめて解決されました:zshでtab補完したときに最初の2文字が消えずに残る問題の対策メモ
メモ(接続失敗時のエラー表示)
Error starting mosh-server on remote server. Output of server 1.1.1.1: SSH Connection: 2.2.2.2 22222 1.1.1.1 11111 The locale requested by LC_ALL=ja_JP.UTF-8 isn't available here. Running `locale-gen ja_JP.UTF-8' may be necessary. mosh-server needs a UTF-8 native locale to run. Unfortunately, the local environment (LANG=en_US) specifies the character set "ISO-8859-1", The client-supplied environment (LC_ALL=ja_JP.UTF-8) specifies the character set "ISO-8859-1". locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=ja_JP.UTF-8 LANGUAGE= LC_CTYPE="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_PAPER="ja_JP.UTF-8" LC_NAME="ja_JP.UTF-8" LC_ADDRESS="ja_JP.UTF-8" LC_TELEPHONE="ja_JP.UTF-8" LC_MEASUREMENT="ja_JP.UTF-8" LC_IDENTIFICATION="ja_JP.UTF-8" LC_ALL=ja_JP.UTF-8 Connection to 1.1.1.1 closed.
スポンサーリンク
スポンサーリンク