これで隣の字と重なることがなくなる。
問題
vimで全角文字を使うと隣の字と重なってしまうことがある。
以下のように表示したい。
対処
~/.vimrc
で設定する。
設定
vim ~/.vimrc
set encoding=utf8 if exists('&ambw') set ambiwidth=double endif
原因
表示幅が足りないせい。文字コードとそれを表示するツールの問題である。
文字コード
いわゆる半角(1バイト)文字と全角(2バイト)文字がある。SHIFT-JISのときはそれだけだったが、Unicodeは違う。
Unicodeの仕様では表示幅はおなじく上記2種類である。ただ、曖昧幅というのがあって環境によって表示幅が変わるものもある。この曖昧幅にあたる字が全角幅で表示してほしいところ、半角幅で表示されてしまうから隣の字と重なってしまう。Unicode East Asian Width参照。
- East Asian FullWidth(Wide)
- East Asian Ambiguous(曖昧)
- East Asian HalfWidth(Narrow)
ツール
ツールによっては表示幅を設定できる。
幸いVimは設定できた。
残念ながらラズパイ標準ターミナルLXTerminalは設定できない。なので字が重なってしまう。
所感
曖昧幅のやつはすべて全角で表示してくれよ。それかLANG
の設定に応じて設定してくれよ。未だに文字すらまともに表示できないのはひどい。
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
- Vim 8.1.1401
$ uname -a Linux raspberrypi 5.10.52-v7l+ #1441 SMP Tue Aug 3 18:11:56 BST 2021 armv7l GNU/Linux