【发布时间】:2011-09-19 15:17:03
【问题描述】:
我在 Solaris 上以 256 色模式使用 vim(在 Windows 上通过 Putty 连接)。在 tmux 之外,一切看起来都很棒并且工作正常,但在 tmux 中,当分页/滚动文件时,背景颜色会定期更改。
这是它的外观:
这是它在翻页后的样子:
谢谢!
【问题讨论】:
我在 Solaris 上以 256 色模式使用 vim(在 Windows 上通过 Putty 连接)。在 tmux 之外,一切看起来都很棒并且工作正常,但在 tmux 中,当分页/滚动文件时,背景颜色会定期更改。
这是它的外观:
这是它在翻页后的样子:
谢谢!
【问题讨论】:
As explained here,通过清除t_ut 终端选项禁用背景颜色擦除 (BCE)(在Vim 中运行:set t_ut=,然后按Control+L 刷新终端的显示)以便在 tmux 和 GNU 屏幕中使用 Vim 时颜色方案正常工作。
根据上面的链接,可以通过添加以下内容在 .vimrc 中设置 BCE
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
【讨论】:
此错误已在 vim 7.4 patch 7.4.1942 中修复
相关问题:804
【讨论】:
添加替代解决方案,因为我自己遇到了这个问题,只是解决了它。我有正确的 TERM 值,terminfo 文件在那里,等等,但背景仍将仅绘制在包含可打印字符的单元格或它们左侧的单元格后面。
如果您经常在 GUI vim 和 CLI vim 之间切换,您可能会在某个时候在您的 .vimrc 文件中放入类似的内容:
if !has("gui_running")
set term=xterm
endif
(或者实际上是 .vimrc 中的所有 TERM 变量的覆盖)
将终端覆盖更改为 screen-256color。
...
set term=screen-256color
...
【讨论】:
set term=screen-256color in .vimrc 帮助了我。谢谢!
这似乎是您的术语设置或术语信息的问题。
确保您在 tmux 中的术语是 TERM=screen-256color 并且您的 solaris 框具有正确的术语信息。
【讨论】: