それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

gnu screen で表示がずれる問題に対応する。

GNU Screen でdpkg などncursesの表示がずれる問題

GNU Screen はapt インストール時にセッション切断などの事故に備えるために非常に有効なツールである。なのに、APTでdpkgが起動すると、ncursesで表示がずれる問題が発生し、選択が非常にやりにくくなり、aptのために入れるのにaptが面倒になっていた。だからずっと使わなかった。。tmux を使ったいたのは、このcurses 問題がある。

いますぐ対応する場合

問題の原因は、日本語などCJKの全角文字の幅を適切に取り扱えない問題なので、LANG=Cをいれてやれば、解決する。

LANG=C screen 

最新バージョンのSCREENなら

~/.screenrc に次の魔法の文字を書くことで解決する。

cjkwidth off

なんと解決する!

(あえて、screen コマンドがわかるように若干数行分を上スクロールしてある)

リロード

Ctrl-Aを押してコマンドモードにしてから、リロードする

:source ~/.screenrc

今回実験した環境

screen -v
Screen version 4.09.00 (GNU) 30-Jan-22

screen は ubuntu のapt からインストール

takuya@raspi-ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.2 LTS
Release:        22.04
Codename:       jammy

screen いいじゃん

dpkg の表示がずれる問題がイヤで仕方なかったけどズレが解決するのであればScreenを使います。

参考資料

https://www.hiroom2.com/2015/05/29/utf8%E7%92%B0%E5%A2%83%E3%81%AEgnu-screen-4-1-4-2%E3%81%A7ncurses%E3%81%AE%E8%A1%A8%E7%A4%BA%E3%81%8C%E3%81%8A%E3%81%8B%E3%81%97%E3%81%8F%E3%81%AA%E3%82%8B/