reona.dev

文字崩れ, 文字が残ってしまうのを防ぐ

Vim


問題

iterm2 で tmux, Neovim と使い普段開発をしているが、以下のように画面レイアウトが崩れてカーソル位置がおかしくなったり、操作後に文字が画面に残ってしまうことがあった。 特にプラグインによって画面の描画に変更が加わる際には、描画がおかしくなることが多かった。

import の後ろにカーソルがあるが、実際のカーソル位置は 1 行目 import の手前。

1 画面に複数 window がある場合は端に文字が残ることが多かった。(残らないときもあった)

開発ができないことはないが、開発スピードに影響が出るのと、単純に必要ない文字が残るのは邪魔でストレスだった。

解決法

設定を見直してみた。文字の扱いに影響する既存の設定が影響していることを仮定。

結果、

set ambiwidth=double (規定では `single`)

https://vim-jp.org/vimdoc-ja/options.html#‘ambiwidth’

現在のところ、設定可能な値は次の 2 通りである:

“single”: US-ASCII の文字と同じ幅を使う。これはほとんどのユーザーにとって期待どおりになる。

“double”: ASCII 文字の 2 倍の幅を使う。

☆ や※などの記号が Vim 上で崩れてしまうのを防ぐために設定していたが、singleにすることで正常に描画されるようになった。

Vim-airline で ambiwidth=double とするとデザインが崩れる件についての対策