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

mar*_*deo 11 macos vim color-scheme

可能重复:
当我使用它们时,为什么大多数vim颜色方案看起来不像截图一样好?

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

但是在terminal.app中,颜色方案是关闭的..我使用了Solarized 256主题的terminal.app和vim中的solarized主题.

这就是他们的样子:

gVim离开,Terminal.app对了

我不得不设置g:solarized_termtrans = 1来获得ti背景甚至显示正确的颜色.

gre*_*uan 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
Run Code Online (Sandbox Code Playgroud)

如果你使用终端,它基本上修复了它的终端.尝试使用:let g:solarized_termcolors = 16.

伪代码:

  • 如果用户没有使用GUI:
    • 然后将termtrans等于1 设置.
    • 告诉Vim只使用16种颜色,如果你的终端支持它就会使用256种颜色(不知道那种颜色).
  • 万一

编辑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
Run Code Online (Sandbox Code Playgroud)

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