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.).
$TERM
auf beiden Servern ist xterm-256color
. ** Siehe Update-Hinweise
Von einem SLES10-Server:
Gleiche Dotfiles, aber auf einem SLES11-Server:
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 aufinfocmp
demncurses-devel
Paket basiert, von dem ich bestätigt habe, dass es sich nicht auf dem SLES11-Server-Image befindet. Wenninfocmp
es nicht ausgeführt wird oder nicht verfügbar$TERM
ist, bleibt es unverändert oder was auch immer es war, bevor das Skript ausgeführt wurde . - Für den Fall, dass
$TERM
geerbt wird (bereits festgelegt), lässt die bedingte Logik des Skripts .bash_prompt sie derzeit unberührt, wenninfocmp
sie nicht ausgeführt wird. - Das Skript .bash_prompt verwendet dann
tput
Befehle, um mehrere Variablen mit Farbcodes zu initialisieren - Werte, die weit über dem Standardwert für 8 Farben liegen.tput
wird beeinflusst von$TERM
.
Meine aktuelle Theorie: Mein PS1
Setup-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 tput
und des Einflusses ncurses
auf das System bestätigen? Ich habe Artikel darüber bemerkt , wie ncurses mehr Farbwerte im Terminal ermöglicht.
Antworten:
Sind Sie sicher, dass dies kein (teilweises)
vim
Konfigurationsproblem ist?vim
Die 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_prompt
und stimmt nicht mit bekannten Bash- oder Shell-Typen überein.Was ist der erkannte Typ beim Laden und unterscheidet er sich auf jedem System?
Wenn nicht,
filetype=sh
dann versuchen Sie es(Ich
conf
vermute, einer sagt zumindest Dateityp, der#
KommentareTODO
und'
"
zitierte Zeichenfolgen hervorhebt ).Ich vermute, dass SLES ein bestimmtes
vim-data
Paket 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:
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:
Möglicherweise ist das Skript colortest.vim auch nützlich. Starten
vim
und Ausführenvim
Führen Sie innerhalb:help xterm-color
weitere 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):
quelle