Vim Solarized在OS X Terminal.app不正确的颜色

时间:2012-12-30 18:51:16

标签: macos vim color-scheme

  

可能重复:
  Why don’t most vim color schemes look as nice as the screenshot when I use them?

我正在尝试将我的vim配置转移到仅从终端使用它。目前我正在使用gVim,一切正常。

但是在terminal.app中,配色方案已关闭..我正在使用Solarized 256主题的terminal.app和vim中的曝光主题。

这就是他们的样子:

gVim left, Terminal.app Right

我必须设置g:solarized_termtrans = 1来获得背景甚至可以显示正确的颜色。

1 个答案:

答案 0 :(得分:9)

我曾经遇到过这个问题。

但是以下语句修复了所有内容,以下是我在.vimrc文件中控制终端支持的方式:https://github.com/Greduan/dotfiles/blob/8b48b0d788c0fed6fc14720bbe3ae9def31af947/vim/vimrc.vim#L550-L556

if !has('gui_running')
    " Compatibility for Terminal
    let g:solarized_termtrans=1

    " Make Solarized use 16 colors for Terminal support
    let g:solarized_termcolors=16
endif

如果您正在使用终端,它基本上为终端修复了它。尝试使用:let g:solarized_termcolors = 16

伪代码:

  • 如果用户未使用GUI:
    • 然后将termtrans设为等于一个。
    • 告诉Vim只使用16种颜色,如果您的终端支持它,则为256种颜色(不知道那种颜色)。
  • ENDIF

编辑1:

如果您确定使用的是256色终端,那么您也可以单独使用它,它将完美运行。像这样:https://github.com/Greduan/dotfiles/blob/6dac113d8281b0201399831bf62a2ea520d28154/vim/vimrc.vim#L551-L561

if !has('gui_running')
    " Compatibility for Terminal
    let g:solarized_termtrans=1

    if (&t_Co >= 256 || $TERM == 'xterm-256color')
        " Do nothing, it handles itself.
    else
        " Make Solarized use 16 colors for Terminal support
        let g:solarized_termcolors=16
    endif
endif

这样做是检查您是否有终端。如果确实设置了termtrans,那么检查你的终端是否有256种颜色,如果确实没有它,如果它没有,那么将Solarized设置为使用16种颜色。这样做得更好。