Solarisで256色モードでvimを使用しています(WindowsではPutty経由で接続)。すべてが見栄えがよく、tmux の外では問題なく動作しますが、tmux 内では、ファイルをページング/スクロールすると背景色が定期的に変化します。
これがどのように見えるかです:
少しページングした後、次のように表示されます。
ありがとう!
here で説明されているように、端末オプションをクリアしてBackground Color Erase (BCE) を無効にし (Vim で実行してから+を押して端末の表示を更新します)、tmux および GNU 画面内で Vim を使用するときに配色が適切に機能するようにします。t_ut
:set t_ut=
ControlL
上記のリンクに従って、次を追加することでBCEを.vimrcに設定できます
if &term =~ '256color'
" disable Background Color Erase (BCE) so that color schemes
" render properly when inside 256-color tmux and GNU screen.
" see also http://snk.tuxfamily.org/log/vim-256color-bce.html
set t_ut=
endif
私は自分でこの問題に遭遇し、それを解決しただけなので、代替ソリューションを追加します。私は正しい TERM 値を持っていて、terminfo ファイルはそこにありましたが、背景は印刷可能な文字を含むセル、またはそれらの左側のセルの後ろにしか描画されませんでした。
GUI vim と CLI vim を頻繁に切り替える場合、.vimrc
ある時点でファイルに次のようなものを入れている可能性があります。
if !has("gui_running")
set term=xterm
endif
(または、実際には 内の TERM 変数のすべてをオーバーライドします.vimrc
)
端末オーバーライドをscreen-256colorに変更します。
...
set term=screen-256color
...
これは、term 設定または terminfo の問題のようです。
tmux の term がTERM=screen-256color
正しいこと、solaris ボックスに正しい terminfo があることを確認してください。
このバグは、vim 7.4パッチ 7.4.1942で修正されています。
関連する問題: 804