这个想法是,通过在Vim中使用set termguicolors,我应该获得配色方案(gruvbox),以便在我的终端(st,具有真彩色支持)中查看,就像在GVim中一样。但我得到的只是黑底白色。vimrc中设置colorscheme的部分:
set termguicolors
st
set background=dark colorscheme gruvbox set termguicolors
k5ifujac1#
你可以读:h xterm-true-color。我也在使用st,实际上,设置termguicolors只给我黑色和白色。但根据帮助中的建议,我添加了以下内容:
:h xterm-true-color
termguicolors
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum" let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
然后颜色又出现了。希望能有所帮助。以下是:h xterm-true-color的完整摘录:Vim支持在终端中使用真彩色(取自|高光引导|和/或|高亮显示|),假定终端支持这一点。要使其工作,需要设置“termguicolors”选项。有关支持真彩色的终端列表,请参见https://gist.github.com/XVilka/8346728。有时设置'termguicolors'是不够的,必须设置|t_8f|和/或|t_8b|选项明确。这些选项的默认值为“^[[38; 2;%lu;%lu;%lum”和“^[[48; 2;%lu;%lu;%lum”,但仅在$TERM为xterm时设置。一些终端接受相同的序列,但所有的分号都被冒号取代(这实际上更兼容,但支持的范围较小):
$TERM
xterm
let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum" let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"
这些选项包含printf字符串,带有|printf()|(实际上,它的C等价物,因此是l修饰符),使用t_ option值和三个无符号长整数调用,这些整数可以具有0到255(包括0和255)之间的任何值,分别表示红色、绿色和蓝色。
l
wh6knrhe2#
什么是$TERM?set termguicolors似乎只有在TERM是xterm*时才有效。我设置它是为了让它与其他东西一起工作,比如screen/tmux
TERM
xterm*
screen
tmux
if !has('gui_running') && &term =~ '\%(screen\|tmux\)' let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum" let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum" endif set termguicolors
这样,vim对xterm*和screen*/tmux*都使用truecolor
screen*
tmux*
2条答案
按热度按时间k5ifujac1#
你可以读
:h xterm-true-color
。我也在使用
st
,实际上,设置termguicolors
只给我黑色和白色。但根据帮助中的建议,我添加了以下内容:
然后颜色又出现了。希望能有所帮助。
以下是
:h xterm-true-color
的完整摘录:Vim支持在终端中使用真彩色(取自|高光引导|和/或|高亮显示|),假定终端支持这一点。要使其工作,需要设置“termguicolors”选项。有关支持真彩色的终端列表,请参见https://gist.github.com/XVilka/8346728。
有时设置'termguicolors'是不够的,必须设置|t_8f|和/或|t_8b|选项明确。这些选项的默认值为“^[[38; 2;%lu;%lu;%lum”和“^[[48; 2;%lu;%lu;%lum”,但仅在
$TERM
为xterm
时设置。一些终端接受相同的序列,但所有的分号都被冒号取代(这实际上更兼容,但支持的范围较小):这些选项包含printf字符串,带有|printf()|(实际上,它的C等价物,因此是
l
修饰符),使用t_ option值和三个无符号长整数调用,这些整数可以具有0到255(包括0和255)之间的任何值,分别表示红色、绿色和蓝色。wh6knrhe2#
什么是
$TERM
?set termguicolors
似乎只有在TERM
是xterm*
时才有效。我设置它是为了让它与其他东西一起工作,比如
screen
/tmux
这样,vim对
xterm*
和screen*
/tmux*
都使用truecolor