it-swarm-eu.dev

Wie aktiviere ich die Vollfarbunterstützung in Vim?

Ich habe ein schönes Vim-Farbschema ( xoria256 ) und es sieht in GVim hervorragend aus, aber wenn ich im Terminal normales vim verwende, wird das Farbschema nur teilweise unterstützt - zum Beispiel das Standard-Semi -transparente Auberginen-Hintergrundfarbe wird verwendet. Wie kann ich Terminal dazu bringen, mein Vim-Farbschema originalgetreu wiederzugeben?

97
David Siegel

GNOME Terminal unterstützt 256 Farben, kündigt jedoch keine Unterstützung an. Sie können die automatische Erkennung von vim überschreiben, indem Sie Folgendes eingeben:

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

in deinem ~/.vimrc.

Anmerkung: Wenn Sie den Bildschirm GNU verwenden, frisst er diese 256-Farben-Codes gerne und konvertiert sie in 16 Grundfarben. Eine bessere Lösung besteht darin, TERM auf xterm-256color zu ändern, bevor Sie screen/vim starten.

pdate für 2017: Wenn Sie über ein ausreichend aktuelles Vim (7.4.1799 oder neuer) und einen ausreichend fortschrittlichen Terminal-Emulator (xterm oder gnome-terminal basierend auf einer ausreichend aktuellen Version von VTE) verfügen can :set termguicolors und terminal vim verwenden die vollen 24-Bit-Farben, die von Ihrem vim-Thema mit highlight guifg=#rrggbb guibg=#rrggbb definiert wurden.

78
Marius Gedminas

Eine allgemeinere Lösung besteht darin, den Begriff "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 Begriff type in .bashrc mit so etwas wie dem Folgenden:

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 verwenden (möglicherweise verwirrt sie einige andere), verwenden Sie stattdessen:

TERM=xterm-256color myprogram

und setzen Sie das vielleicht als Alias ​​für das Programm.

Überprüfen Sie dann die Farbfunktionen Ihres Terminals mit:

$ tput colors
256

Möglicherweise benötigen Sie die oben genannte VIM-Einstellung, damit VIM sie erkennt. Die meisten Anwendungen erkennen die 256 Farben automatisch (sofern sie diese verwenden können).

Emacs hat auch Farbthemen, die mit 256 Farben viel besser sind. So überprüfen Sie, 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.

44
Dave Jennings

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

export TERM="xterm-256color"

Und rette es. Starten Sie danach Ihr Gnome-Terminal neu. Diese Änderung ist nicht nur in vim verfügbar, sondern für alle Ihre Terminalanwendungen.

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 sehen Sie ungefähr Folgendes (abhängig von Ihrem Gnome-Terminal-Thema):

terminal

36
crncosta

Nun, Sie können Gvim immer so konfigurieren, dass es wie Vim aussieht. Sie müssen nur 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 denke das löst dein Problem nicht, aber wer weiß ;-)

1
wassimans

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

0
DLH