Wie aktiviere ich die Vollfarbunterstützung in Vim?

94

Ich habe einen schönen Vim colorscheme ( xoria256 ) und es sieht in GVim brillant aus, aber Wenn ich normales vim in Terminal verwende, wird das Farbschema nur teilweise unterstützt - zum Beispiel wird die standardmäßige halbtransparente Aubergine-Hintergrundfarbe verwendet. Wie stelle ich Terminal sicher, dass mein Vim-Farbschema gerendert wird?

    
David Siegel 28.07.2010, 21:53

5 Antworten

74

GNOME Terminal unterstützt 256 Farben, macht aber keine Werbung dafür. Sie können die automatische Erkennung von vim überschreiben, indem Sie Folgendes eingeben:

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

in Ihrem ~ / .vimrc.

Hinweis : Wenn Sie den GNU-Bildschirm verwenden, isst er diese 256-Farben-Codes gerne und konvertiert sie in 16 Grundfarben. Eine bessere Lösung besteht darin, vor dem Start von screen / vim TERM in xterm-256color zu ändern.

Update für 2017 : wenn Sie einen ausreichend aktuellen Vim (7.4.1799 oder neuer) und einen ausreichend fortgeschrittenen Terminal-Emulator (xterm oder gnome-terminal, der auf einer neueren Version von VTE basiert) haben ), können Sie :set termguicolors und terminal vim volle 24-Bit-Farben verwenden, wie von Ihrem vim-Thema mit highlight guifg=#rrggbb guibg=#rrggbb definiert.

    
Marius Gedminas 28.07.2010, 22:55
44

Eine allgemeinere Lösung besteht darin, den Begriffstyp "xterm-256color" zu installieren. In 10.04 denke ich, dass es standardmäßig installiert ist. Zuvor mussten Sie "ncurses-term" installieren, um es zu bekommen.

Dann setzen Sie den Begriffstyp in .bashrc mit etwas wie folgt:

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

Wenn Sie es vorziehen, nur die 256-Farben-Fähigkeit für bestimmte Programme zu haben (vielleicht verwirrt es einige andere), verwenden Sie stattdessen:

TERM=xterm-256color myprogram

und vielleicht das als Alias ​​für das Programm festlegen.

Überprüfen Sie dann Ihre Terminalfarbfunktionen mit:

$ tput colors
256

Sie müssen die vim-Einstellung möglicherweise noch benötigen, damit vim sie erkennt. Die meisten Anwendungen erkennen die 256 Farben automatisch (wenn sie sie verwenden können).

Emacs hat auch Farbthemen, die mit 256 Farben viel besser sind. Um zu überprüfen, ob es 256-Farben-fähig ist:

M-x list-colors-display

256colors.pl ist ein Perl-Skript, das alle Farben in Ihrem Terminal anzeigt.

    
Dave Jennings 04.08.2010 15:10
36

Fügen Sie einfach die folgende Zeile in Ihre $HOME/.bashrc ein (vorzugsweise in der letzten Zeile der Datei):

export TERM="xterm-256color"

Und speichern Sie es. Danach starte dein Gnome-Terminal neu. Diese Änderung wird nicht nur in vim, sondern für alle Ihre Terminal-Anwendungen verfügbar sein.

Um zu überprüfen, ob es funktioniert, führen Sie dieses kleine Skript aus:

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

Danach wirst du so etwas wie das Folgende sehen (hängt von deinem gnome-terminalen Thema ab):

    
crncosta 25.11.2010 17:21
1

Nun, du kannst Gvim immer so konfigurieren, dass es wie Vim aussieht. Sie müssen lediglich eine ~ / .gvimrc-Datei erstellen und diese Anpassungstricks einfügen:

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

Ich glaube nicht, dass das dein Problem löst, aber wer weiß das; -)

    
wassimans 25.11.2010 16:18
0

Ich habe ein separates Profil für Vim erstellt, das eine durchgehende, deckende Farbe im Hintergrund verwendet. Ich wechsle einfach manuell, wenn ich Vim benutze. Nicht sicher, ob es eine bessere Methode gibt. Ich würde es gerne glauben.

    
DLH 28.07.2010 22:17

Tags und Links