当前位置: 首页>>技术教程>>正文


在Vim中,如何启用full-color支持?

, , ,

问题描述

我有一个可爱的Vim colorscheme(xoria256),它在GVim中看起来很棒,但是当我在终端中使用正常的vim时,colorscheme只是部分支持 – 例如,使用默认的semi-transparent茄子背景色。我如何让Terminal忠实地渲染我的Vim色彩?

最佳解决方案

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

次佳解决方案

更通用的解决方案是安装术语类型”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脚本,它将显示终端中的所有颜色。

第三种解决方案

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

export TERM="xterm-256color"

并保存它。之后,重新启动您的gnome-terminal。这个改变不仅在vim中可用,而且可用于所有的终端应用程序。

要检查它是否工作,运行这个小script

#!/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主题):

command-line,vim,colors,ubuntu

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/660.html,未经允许,请勿转载。