問題

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 とするとデザインが崩れる件についての対策