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