it-swarm.cn

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

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

97
David Siegel

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位颜色。

78
Marius Gedminas

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

44
Dave Jennings

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

export TERM="xterm-256color"

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

要检查它是否有效,运行这个小 脚本

#!/usr/bin/env python
# Copyright (C) 2006 by Johannes Zellner, <[email protected]>
# modified by [email protected] to fit my output needs
# modified by [email protected] 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主题):

terminal

36
crncosta

好吧,你总是可以配置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

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

1
wassimans

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

0
DLH