如何在Vim中启用全彩色支持?

我有一个可爱的Vim colorscheme( xoria256 ),它在GVim看起来很棒,但是当我在终端使用普通的vim时,colorscheme只是部分支持 – 例如,使用默认的半透明茄子背景颜色。 如何让终端忠实地呈现我的Vim colorscheme?

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将使用highlight guifg=#rrggbb guibg=#rrggbb使用vim主题定义的完整24位颜色。

更通用的解决方案是安装术语类型“xterm-256color”。 在10.04我认为它是默认安装的。 以前你需要安装“ncurses-term”来获取它。

然后在.bashrc中设置术语类型,如下所示:

 if [ -n "$DISPLAY" -a "$TERM" == "xterm" ]; then export TERM=xterm-256color fi 

如果您更喜欢只为某些程序提供256色function(可能会让其他一些程序混淆),请改用:

 TERM=xterm-256color myprogram 

并且可能将其设置为该程序的别名。

然后检查您的终端颜色function:

 $ tput colors 256 

您仍然可能需要上面的vim设置让vim识别它。 大多数应用程序会自动识别256种颜色(如果他们可以使用它们)。

Emacs还有256色的颜色主题更好。 要检查它是否具有256色function:

 Mx list-colors-display 

256colors.pl是Perl脚本,它将显示终端中的所有颜色。

只需将下面的行包含在$HOME/.bashrc (最好在文件的最后一行):

 export TERM="xterm-256color" 

并保存它。 之后,重新启动你的gnome-terminal。 此更改不仅适用于vim,还适用于所有终端应用程序。

要检查它是否有效,请运行以下小脚本 :

 #!/usr/bin/env python # Copyright (C) 2006 by Johannes Zellner,  # 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主题):

终奌站

好吧,你总是可以配置Gvim让它看起来像Vim。 您只需创建一个〜/ .gvimrc文件并将其粘贴到这些自定义技巧中:

 set guioptions-=r " no scrollbar on the right set guioptions-=l " no scrollbar on the left set guioptions-=m " no menu set guioptions-=T " no toolbar 

我不认为这解决了你的问题,但谁知道;-)

我为Vim制作了一个单独的配置文件,它在背景中使用了坚固的不透明颜色。 每当我使用Vim时,我只需手动切换到它。 不确定是否有更好的方法。 我想这么想。