我正在尝试将我的 vim 配置转移到仅从终端使用它。目前我正在使用 gVim,一切正常。
但是在 terminal.app 中,配色方案关闭了。我在终端.app 中使用 Solarized 256 主题,在 vim 中使用 Solarized 主题。
这就是他们的样子:
我必须设置 g:solarized_termtrans = 1 才能让 ti 背景甚至显示正确的颜色。
我正在尝试将我的 vim 配置转移到仅从终端使用它。目前我正在使用 gVim,一切正常。
但是在 terminal.app 中,配色方案关闭了。我在终端.app 中使用 Solarized 256 主题,在 vim 中使用 Solarized 主题。
这就是他们的样子:
我必须设置 g:solarized_termtrans = 1 才能让 ti 背景甚至显示正确的颜色。
我自己曾经遇到过这个问题。
但是以下语句修复了所有问题,这是我在 .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
.
伪代码:
termtrans
等于一。编辑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 种颜色。这效果要好得多。