web-dev-qa-db-ja.com

ページング時にtmuxの背景色のvimが変化する

Solarisで256色モードでvimを使用しています(WindowsではPuTTY経由で接続されています)。 tmuxの外ではすべてが見栄えがよく、正常に機能しますが、tmux内では、ファイルをページング/スクロールするときに背景色が定期的に変化します。

これがどのように見えるかです:

少しページングした後の表示は次のとおりです。

ありがとう!

37
moshen

ここで説明されているようにt_utターミナルオプションをクリアして背景色の消去(BCE)を無効にします(Vimで:set t_ut=を実行してからを押します) Control+L tmuxおよびGNU screen)内でVimが使用されている場合に配色が正しく機能するように、端末の表示を更新します。

上記のリンクに従って、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
53
sunaku

私は自分でこの問題に遭遇し、それを解決しただけなので、代替ソリューションを追加します。正しいTERM値があった、terminfoファイルがそこにあった、などですが、背景は印刷可能な文字を含むセル、またはそれらの左側のセルの後ろにしか描画されませんでした。

GUIvimとCLIvimを頻繁に切り替える場合は、ある時点で.vimrcファイルに次のようなものを入れている可能性があります。

if !has("gui_running")
    set term=xterm
endif

(または実際には.vimrc内のすべてのTERM変数をオーバーライドする)

ターミナルオーバーライドをscreen-256colorに変更します。

...
set term=screen-256color
...
17
Andrew

これは、用語設定またはterminfoの問題のようです。

Tmuxの用語がTERM=screen-256colorであり、Solarisボックスに正しいterminfoがあることを確認してください。

8
jasonwryan

このバグはvim7.4で修正されています パッチ7.4.1942

関連する問題: 804

0
ninrod