Verwendung von Farbschemata mit Vim und Putty

14

Ich versuche, das Wüstenfarbschema mit VIM 7.0 auf CentOS 5.6 x64 zu verwenden, das sich hier befindet:

http://hans.fugal.net/vim/colors/desert.vim

Ich habe die Datei heruntergeladen und in meinem ~/.vim/colorsVerzeichnis gespeichert . Anschließend fordere ich VIM auf, das Farbschema zu verwenden, indem Sie Folgendes eingeben:

:colors desert

Es soll so aussehen:

Bildbeschreibung hier eingeben

Allerdings bekomme ich das:

Bildbeschreibung hier eingeben

Ich melde mich auf diesem Server nur als normaler Benutzer (nicht rootoder sudo) mit PuTTY 0.60 an und habe die folgenden Optionen unter festgelegt Window -> Colours:

Terminal darf ANSI-Farben angeben - aktiviert
Terminal darf den 256-Farben-Modus verwenden - aktiviert
Fettgedruckter Test ist andersfarbig
Versuch, logische Paletten zu verwenden - nicht markiert
Systemfarben verwenden - nicht markiert

Wenn ich mich sudoals anmelde rootund das gleiche versuche, bekomme ich überhaupt keine Farben außer weißem Text auf schwarzem Hintergrund.

Sind diese Schemata hauptsächlich auf gVIM ausgerichtet und kann PuTTY diese Farben nicht anzeigen?

Ich habe ein bisschen herumgegoogelt und bin auf Artikel wie diesen gestoßen, aber sie scheinen nicht zu funktionieren.

Kev
quelle

Antworten:

22

Standardmäßig präsentiert sich PuTTY als xterm. Die Termdatenbank, die von verschiedenen Programmen verwendet der Endgerätefähigkeiten , um zu bestimmen, sagt unterstützt acht Farben nur:xterm

$ infocmp -1L xterm | grep max_colors

Dies bedeutet , dass selbst wenn Ihre Version von Xterm tut Unterstützung 256-Farben - Modus, Programme werden nicht darüber wissen.

  • Die einfachste Lösung besteht darin, die Umgebungsvariable $ TERM auf festzulegen xterm-256color.

    (In der ~ / .profile, könnten Sie verwenden:
    if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi)

  • Sie können PuTTY sagen, immer identifizieren sich selbst als xterm-256colorüber Konfiguration → Verbindung → Daten → Terminal-Typ String .

    Hinweis: Wenn Sie Nummer 1 oder Nummer 2 verwenden und eine Verbindung zu einem Server herstellen, der nicht über den entsprechenden Terminfo-Eintrag verfügt, werden alle TUI-Programme unterbrochen.

  • Sie können auch die 't_Co'Option in vim 256auf setzen, um den terminfo-Wert zu überschreiben.

    if &term == "xterm"
        set t_Co=256
    endif
    
  • Oder Sie können die terminfo- Datenbank bearbeiten .

    $ infocmp -L -1 xterm | sed -r 's/(max_colors)#[0-9]+/\1#256/' > /tmp/xterm
    $ tic /tmp/xterm
    

    Der aktualisierte Eintrag wird in gespeichert ~/.terminfo.

user1686
quelle
Hervorragende Antwort. Es ist besser, aber ich habe das Gefühl, dass 256 Farben nicht ausreichen, um diese Pastelltöne zu rendern. Irgendeine Idee, warum ich überhaupt keine Farben bekomme, wenn ich angemeldet bin als root?
Kev
1
@ Kev: 1) Der 256-Farben-Modus ist das Beste, was Sie mit einem VT100-kompatiblen Terminalemulator erreichen können. (Ich habe gehört, dass KDE Konsole True-Color-Unterstützung bietet, diese ist jedoch sehr unüblich.) 2) Wenn Sie sich als root anmelden, erhalten Sie ein separates Basisverzeichnis und ein separates ~/.vim/colors.
user1686
1
@ Kev: Weil vi es keine Farbschemata oder Syntaxhervorhebungen gibt - oder irgendetwas anderes als die ursprünglichen Grundfunktionen. (Vim ist schließlich "Vi Improved".)
user1686
1
vi --versionsagt, es ist vim, also ist es ein zurückgeschnittenes vim, damit es wie vi aussieht? Sorry, wenn das eine blöde Frage ist, es ist Jahre her, dass ich mit Unix im Zorn gearbeitet habe (SCO-Unix-Boxen mit seriellen Ports) und es gab nur vi (real vi).
Kev
1
Art von. Wenn Sie vim als " vi" ausführen , startet es in einem "Kompatibilitäts" -Modus und verhält sich so weit wie möglich wie vi. Ich kenne CentOS nicht, daher bin ich mir nicht sicher, ob es sich nur um einen Modus oder einen völlig separaten abgespeckten Build handelt. (Meine Distribution
packt