TeraTerm 上で Emacs を動かすと utf8 の罫線が短くなる問題の処方箋

問題点

Utf8 の罫線(等)を表示するときに TeraTerm で変な変換をかけているらしい。 外国のひと向けに罫線の長さを半角にして表示している様子。 罫線を全角表示したいわれわれ古い日本人には必要ない設定のようだぞ。

処方箋

TERATERM.ini の設定を変更する

  • UnknownUnicodeCharacterAsWide を off ==> on に。(こっちはついでにやってみた)

  • UnicodeToDecSpMapping を 3 ==> 0 に。(こっちが問題の本質)

TERATERM.ini

; Unknown Unicode character handling
UnknownUnicodeCharacterAsWide=on

; Mapping of Unicode to DEC special character
;   The sum of following values:
;   1 : Box drawings (U+2500-U+257F)
;   2 : Bullet (U+2022)
;       Hyphenation point (U+2027)
;       Light shade (25%) (U+2591)
;       Medium shade (50%) (U+2592)
;       Dark shade (75%) (U+2593)
;       Black small square (U+25AA)
;       Black vertical rectangle (U+25AE)
;       Black verty small square (U+2B1D)
;   4 : Middle dot (U+00B7)
;       One dot leader (U+2024)
;       Bullet operator (U+2219)
UnicodeToDecSpMapping=0

設定をファイルに保存し、 TeraTerm を再起動し、 emacs -nw でファイルを開くと、 罫線が正しく表示された。

ご参考

  • =>TeraTerm設定ファイルの説明
  • ここ(↑)にある下記を参照。
  • 同じものは TeraTerm のヘルプからも見られます。

  • TeraTerm を C:\Program Files とか Windows の管理しているフォルダにインストールしている場合は、TERATERM.ini を管理者権限で開く必要あるかも。

  • Emacs ではこれで OK だった。しかし vi では表示は治ったけどカーソル移動が変。 vim なら動くかな(試してない)。たぶん Unicode の曖昧な文字幅の影響だろうね。

.emacs の utf8 設定

ちなみに Linux 上で動かすときは .emacs には下記の設定を入れている。 設定をしないと変な命令をターミナルに送るらしく、行ずれが起きていた。

(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(setq file-name-coding-system 'utf-8)

参考資料