it-swarm.dev

Jak povolím plnou barevnou podporu ve Vimu?

Mám krásný Vim colorscheme ( xoria256 ) a vypadá to skvěle v GVim, ale když v Terminálu používám normální vim, colorscheme je podporováno pouze částečně - například výchozí používá se poloprůhledná lilková barva pozadí. Jak mohu terminálu věrně vykreslit můj barevný systém Vim?

99
David Siegel

Terminál GNOME podporuje 256 barev, ale neinvertuje jeho podporu. Autodetekci vimu můžete potlačit zadáním následujícího:

if $COLORTERM == 'gnome-terminal'
  set t_Co=256
endif

ve vašem ~/.vimrc.

Poznámka: Pokud použijete obrazovku GNU=), bude šťastně jíst těchto 256 barevných kódů a převést je na základní 16 barev. Lepší oprava je změna TERM na xterm -256barva před spuštěním obrazovky/vim.

Aktualizace pro rok 2017: Pokud máte dostatečně nedávný Vim (7.4.1799 nebo novější) a dostatečně pokročilý emulátor terminálu (xterm nebo gnome-terminál založený na dostatečně nejnovější verzi VTE), umět :set termguicolors a terminálový vim použije plné 24bitové barvy, jak je definováno vaším motivem vim, pomocí highlight guifg=#rrggbb guibg=#rrggbb.

79
Marius Gedminas

Obecnějším řešením je instalace názvu typu "xterm-256color". V 10.04 si myslím, že je nainstalován ve výchozím nastavení. Dříve jste potřebovali nainstalovat „ncurses-term“, abyste jej získali.

Poté zadejte výraz type v .bashrc s následujícím textem:

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

Pokud byste raději měli pouze 256 barevnou schopnost pro některé programy (možná by to zmást některé jiné), použijte místo toho:

TERM=xterm-256color myprogram

a možná to nastavit jako alias pro program.

Poté zkontrolujte možnosti barev terminálu pomocí:

$ tput colors
256

Možná budete potřebovat výše uvedené nastavení vim, aby jej vim rozpoznal. Většina aplikací rozpozná 256 barev automaticky (pokud je mohou použít).

Emacs má také barevná témata, která jsou s 256 barvami mnohem lepší. Chcete-li zkontrolovat, zda lze spustit 256 barev:

M-x list-colors-display

256colors.pl je skript Perl, který zobrazí všechny barvy v terminálu.

45
Dave Jennings

Stačí přidat řádek níže do svého $HOME/.bashrc (nejlépe na posledním řádku souboru):

export TERM="xterm-256color"

A ulož to. Poté restartujte terminál gnome. Tato změna bude k dispozici nejen v vim, ale pro všechny vaše terminálové aplikace.

Chcete-li zkontrolovat, zda to funguje, spusťte tento malý skript :

#!/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")

Poté uvidíte něco jako následující (záleží na vašem tématu gnome-terminal):

terminal

36
crncosta

Gvim můžete vždy nakonfigurovat tak, aby vypadal jako Vim. Musíte pouze vytvořit soubor ~/.gvimrc a vložit do něj tyto triky pro přizpůsobení:

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

Nemyslím si, že to vyřeší váš problém, ale kdo ví ;-)

1
wassimans

Pro Vim jsem vytvořil samostatný profil, který v pozadí používá pevnou neprůhlednou barvu. Jednoduše na to přepnu, kdykoli používám Vim. Nejste si jisti, zda existuje lepší metoda. Rád bych si to promyslel.

0
DLH