TL;DR
- 問題: GNU Screen内でGNU Emacs 28でnwすると下線が沢山出現。
- 解決法:
.screenrc
にsetenv COLORTERM ""
を追加。
環境
- MacBook Pro (13-inch, M1, 2020)
- macOS Big Sur 11.7.2
- iTERM2 3.4.4
- GNU Screen 4.08.00
- GNU Emacs 28.1 or 28.2 (27.2は問題なし)
- Emacs呼び出し:
emacs -nw # --no-window-system
問題の現象
GNU Screen内で emacs -nw
すると以下のようにイレギュラーな下線が入ってしまう。
GNU Screen内で呼び出す場合だけが問題で、ターミナルから直接起動する場合は正常に動作。
試行錯誤
- brewでEmacs 28.2をインストール => 問題発生
- 自分でコンパイルしたEmacs 27.2 => 正常に動作
- 自分でコンパイルしたEmacs 28.1と28.2 => 問題発生
コンパイル時コマンド(GUIなし):
$ ./configure --prefix=$HOME/Src/ --without-pop --without-kerberos --without-sound --without-wide-int --without-xpm --without-jpeg --without-tiff --without-gif --without-png --without-rsvg --without-xml2 --without-imagemagick --without-xft --without-libotf --without-m17n-flt --without-xaw3d --without-xim --without-ns --without-gpm --without-dbus --without-gconf --without-gsettings --without-selinux --without-gnutls --without-x
$ make && make install
解決
以下の議論で解決策を発見。
https://www.reddit.com/r/emacs/comments/y9b8cd/emacs_running_under_screen_on_a_mac_going/
環境変数 COLORTERM
の設定が問題らしい。
ちなみに自分の環境だと以下のような状態。
$ echo $TERM
xterm-256color # GNU Screenなし
$ echo $TERM
screen-bce # GNU Screenあり
$ echo COLORTERM
truecolor # GNU Screenの有無を問わず
記事の最後にあるように ~/.screenrc
に以下の設定をすると正常に動作する。
setenv COLORTERM ""
なお、OS付属のterminal.appだと COLORTERM
は設定されていないので問題は発生しない。
記事にあるようにtmuxでも問題ないらしい。
GNU Screen + Emacsという組み合わせはそんなに珍しいのだろうか。