【问题标题】:vim in tmux background color changes when pagingtmux中的vim在分页时背景颜色发生变化
【发布时间】:2011-09-19 15:17:03
【问题描述】:

我在 Solaris 上以 256 色模式使用 vim(在 Windows 上通过 Putty 连接)。在 tmux 之外,一切看起来都很棒并且工作正常,但在 tmux 中,当分页/滚动文件时,背景颜色会定期更改。

这是它的外观:

这是它在翻页后的样子:

谢谢!

【问题讨论】:

    标签: vim vi tmux


    【解决方案1】:

    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
    

    【讨论】:

    • 有任何理由一直这样做吗?它会减慢渲染速度吗?
    【解决方案2】:

    此错误已在 vim 7.4 patch 7.4.1942 中修复

    相关问题:804

    【讨论】:

      【解决方案3】:

      添加替代解决方案,因为我自己遇到了这个问题,只是解决了它。我有正确的 TERM 值,terminfo 文件在那里,等等,但背景仍将仅绘制在包含可打印字符的单元格或它们左侧的单元格后面。

      如果您经常在 GUI vim 和 CLI vim 之间切换,您可能会在某个时候在您的 .vimrc 文件中放入类似的内容:

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

      (或者实际上是 .vimrc 中的所有 TERM 变量的覆盖)

      将终端覆盖更改为 screen-256color

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

      【讨论】:

      • 这对我也有用。除了它似乎破坏了很多键盘映射(例如 CommandT 中的箭头、ctrl+箭头映射):/
      • set term=screen-256color in .vimrc 帮助了我。谢谢!
      【解决方案4】:

      这似乎是您的术语设置或术语信息的问题。

      确保您在 tmux 中的术语是 TERM=screen-256color 并且您的 solaris 框具有正确的术语信息。

      【讨论】:

      • 好像可以,但是当我切换到 screen-256color 时,我的 F 键停止工作。
      • F 键是标准的 {F,f} 还是功能键?
      • 功能键...不过我想通了,这是一个 PuTTy 的东西 (howtogeek.com/58487/…),谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 2017-06-10
      相关资源
      最近更新 更多