Answers:
GNOME终端支持256种颜色,但不公布其支持。您可以通过以下操作覆盖vim的自动检测功能:
if $COLORTERM == 'gnome-terminal'
set t_Co=256
endif
在您的〜/ .vimrc中。
注意:如果使用GNU屏幕,它将很高兴吃掉那些256色代码并将其转换为16种基本颜色。更好的解决方法是在启动screen / vim之前将TERM更改为xterm-256color。
2017年更新:如果您具有足够新的Vim(7.4.1799或更高版本)和足够高级的终端仿真器(xterm或基于最新版本VTE的gnome-terminal),则可以,:set termguicolors
并且终端vim将使用完整版本vim主题使用定义的24位颜色highlight guifg=#rrggbb guibg=#rrggbb
。
:set t_Co=256 | colorscheme xoria256
。
if $COLORTERM == 'gnome-terminal'
`set t_Co = 256` endif
(我不确定如何在注释中添加多行代码块,因此请在set语句之前和之后添加换行符)
一个更通用的解决方案是安装术语类型“ xterm-256color”。在10.04中,我认为它是默认安装的。以前,您需要安装“ ncurses-term”来获取它。
然后在.bashrc中设置术语类型,如下所示:
if [ -n "$DISPLAY" -a "$TERM" == "xterm" ]; then
export TERM=xterm-256color
fi
如果您只希望某些程序具有256色功能(可能会混淆其他一些程序),请改用:
TERM=xterm-256color myprogram
并将其设置为程序的别名。
然后使用以下命令检查您的终端颜色功能:
$ tput colors
256
您可能仍需要上面的vim设置才能让vim识别它。大多数应用程序会自动识别256种颜色(如果可以使用的话)。
Emacs还具有256种颜色更好的颜色主题。要检查是否支持256色运行:
M-x list-colors-display
256colors.pl是Perl脚本,它将显示终端中的所有颜色。
[[ -n "$DISPLAY" && "$TERM" = "xterm" ]] && export TERM=xterm-256color
。请验证并随时将其添加到帖子中。
;
可以使一切变得单一。
只需$HOME/.bashrc
将以下行添加到您的行中即可(最好在文件的最后一行):
export TERM="xterm-256color"
并保存。之后,重新启动您的gnome-terminal。此更改不仅适用于vim,而且适用于所有终端应用程序。
要检查它是否有效,请运行以下小脚本:
#!/usr/bin/env python
# Copyright (C) 2006 by Johannes Zellner, <johannes@zellner.org>
# modified by mac@calmar.ws to fit my output needs
# modified by crncosta@carloscosta.org to fit my output needs
import sys
import os
def echo(msg):
os.system('echo -n "' + str(msg) + '"')
def out(n):
os.system("tput setab " + str(n) + "; echo -n " + ("\"% 4d\"" % n))
os.system("tput setab 0")
# normal colors 1 - 16
os.system("tput setaf 16")
for n in range(8):
out(n)
echo("\n")
for n in range(8, 16):
out(n)
echo("\n")
echo("\n")
y=16
while y < 231:
for z in range(0,6):
out(y)
y += 1
echo("\n")
echo("\n")
for n in range(232, 256):
out(n)
if n == 237 or n == 243 or n == 249:
echo("\n")
echo("\n")
os.system("tput setaf 7")
os.system("tput setab 0")
此后,您将看到类似以下内容(取决于您的gnome-terminal主题):