Unterschied zwischen Suse 11 und Suse 10, der sich auf die Terminalfarben auswirkt?

7

Ich habe meine Dotfiles auf Github (schamlose Gabelung der guten Arbeit anderer Leute) versioniert . Bei der Arbeit habe ich sie auf einem zentralen Linux-Server (SuSE Enterprise Linux 10). Ich synchronisiere sie von einem zentralen Verwaltungsserver mit Zielservern (sie haben oft keinen externen http-Zugriff).

Wir haben SuSE Enterprise Linux 11 eingeführt und ich stelle fest, dass auf diesen Servern "rote" oder magentafarbene Bash-Eingabeaufforderungsfarben aus meinen Profileinstellungen nicht funktionieren. In ähnlicher Weise funktionieren meine vim-Farbschemaeinstellungen nicht - zum Beispiel verschwindet das Wort anstelle der Hervorhebung von Suchbegriffen. Rot- und Gelbtöne werden nicht geehrt.

Kann mich jemand auf eine Umgebung oder Einstellung hinweisen, die bei diesen SLES 11-Boxen möglicherweise anders ist? Unten finden Sie Screenshots meiner SLES10- und SLES11-Anmeldungen mit synchronisierten Punktedateien (z. B. .bash_profile, .bash_prompt, .vimrc usw.).

$TERMauf beiden Servern ist xterm-256color. ** Siehe Update-Hinweise

Von einem SLES10-Server: vim session, sles 10, farbschema geehrt

Gleiche Dotfiles, aber auf einem SLES11-Server: vim session, sles 11, Farbschema teilweise geehrt

Aktualisieren

  • Ich habe festgestellt, dass $ TERM anders ist, wenn ich direkt von meiner Workstation aus SSHed habe als vom SLES10-Dienstprogrammserver. Ich glaube, TERM wird vom Utility-Server weitergeleitet.
  • Die Init- Skriptsätze von .bash_prompt,$TERM deren Ausgabe auf infocmpdem ncurses-develPaket basiert, von dem ich bestätigt habe, dass es sich nicht auf dem SLES11-Server-Image befindet. Wenn infocmpes nicht ausgeführt wird oder nicht verfügbar $TERMist, bleibt es unverändert oder was auch immer es war, bevor das Skript ausgeführt wurde .
  • Für den Fall, dass $TERMgeerbt wird (bereits festgelegt), lässt die bedingte Logik des Skripts .bash_prompt sie derzeit unberührt, wenn infocmpsie nicht ausgeführt wird.
  • Das Skript .bash_prompt verwendet dann tputBefehle, um mehrere Variablen mit Farbcodes zu initialisieren - Werte, die weit über dem Standardwert für 8 Farben liegen. tputwird beeinflusst von $TERM.

Meine aktuelle Theorie: Mein PS1Setup-Skript gibt möglicherweise einige nicht unterstützte Terminalwerte aus - früher festgelegt aus der bedingten Logik basierend auf Befehlen, die von den falschen / nicht unterstützten beeinflusst werden $TERM. Dies "vermasselt" dann nachfolgende Befehle wie vim.

Kann jemand diese Theorie auf der Grundlage seines Verständnisses tputund des Einflusses ncursesauf das System bestätigen? Ich habe Artikel darüber bemerkt , wie ncurses mehr Farbwerte im Terminal ermöglicht.

Scott Heaberlin
quelle
Haben Sie versucht, eine andere Grundfarbe anzugeben? Oder nur mit xterm anstelle der Farbversion für $ TERM nur um zu sehen?
1
Nach einigen Verwirrungen aufgrund der Weiterleitung von TERM über SSH scheint xterm Auswirkungen zu haben, obwohl ich nicht glaube, dass dies die Hauptursache ist. Ich aktualisiere den Beitrag mit dem, was ich gefunden habe.
Scott Heaberlin
Punktedateien sind nicht allein, sie haben globale Brüder und Schwestern, z. B. unter /etc/profile.d und /etc/bash.bashrc. Ich habe versucht, sie alle in meinem Blog zu finden. linuxintro.org/wiki/Boot_process#user_starts_a_shell
Thorsten Staerk

Antworten:

1

Sind Sie sicher, dass dies kein (teilweises) vimKonfigurationsproblem ist?

vimDie Erkennung des Dateityps basiert hauptsächlich auf ganzen Namen (z. B. .profile) oder Erweiterungen ( .sh). Die Datei, die Sie angegeben haben, heißt (glaube ich) .bash_promptund stimmt nicht mit bekannten Bash- oder Shell-Typen überein.

Was ist der erkannte Typ beim Laden und unterscheidet er sich auf jedem System?

 :set filetype?

Wenn nicht, filetype=shdann versuchen Sie es

 :set syn=sh

(Ich confvermute, einer sagt zumindest Dateityp, der #Kommentare TODOund ' "zitierte Zeichenfolgen hervorhebt ).

Ich vermute, dass SLES ein bestimmtes vim-dataPaket verwendet. Dieses sollte verschiedene Syntax- und Farbskripte enthalten. Überprüfen Sie, ob dieses auf dem SLES11-System installiert ist.

So sehen Sie, welche Formatierung auf die Zeilennummerierung angewendet wird:

:highlight LineNr

Wenn Sie nicht sehen ctermfg=3(Farbterminal forground = gelb), erklärt dies, warum Gelb "fehlt".

Eine Änderung des erkannten Dateityps erklärt, warum Sie Magenta (Rot und Magenta haben übrigens nicht die gleiche Farbe) auf hervorgehobenen Zeichenfolgen und Gelb "fehlen", wenn LineNr geändert wurde.

Wenn Sie die xterm-Quelle zur Hand haben, können Sie auch einige ihrer Farbtestskripte ausführen, mit denen alle Farbeinträge abgefragt werden können:

perl vttests/256colors2.pl            # fast, show all colors
perl vttests/query-color.pl 0-15      # slow, uninterruptable

Möglicherweise ist das Skript colortest.vim auch nützlich. Starten vimund Ausführen

:runtime syntax/colortest.vim

vimFühren Sie innerhalb :help xterm-colorweitere Schritte aus, um sicherzustellen, dass die Grundfarben wie erwartet eingestellt sind.

Versuchen Sie dies, um zu überprüfen, was Xterm für seine Grundfarben hält (nur beim Start von XTerm gelesen):

xrdb -query | grep -i vt100.color
mr.spuratic
quelle