3 Stimmen

Farben können nicht entsprechend der Terminal-Unterstützung in .screenrc gesetzt werden

Ich würde gerne eine if-else-Schleife in .screenrc für die folgenden Codes so, dass er ausgeführt wird, wenn mein Terminal 256 Farben unterstützt. Andernfalls wird er nicht ausgeführt.

attrcolor b ".I"
# tell screen how to set colors. AB = background, AF=foreground
termcapinfo xterm "Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm"
termcapinfo xterm-color "Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm"

Wie kann man die if-else-Schleife in .screenrc erstellen?

2voto

user71918 Punkte 1098
Dies sollte bereits in der terminfo-Datenbankdatei eingestellt sein. In meinem Fall ist mein Standardterminal xterm. Es verwendet 8 Farben, was sich in vi durch die Verwendung der

termcap einstellen

und prüft das Element t_Co, das auf 8 gesetzt ist. Wenn ich mein Terminal auf einen anderen Terminaltyp wie gnome-256color umstelle, der 256 Farben verwendet, zeigt vi t_Co als gleich 256 an. Ich bin mir nicht sicher, warum Sie versuchen müssen, dies in Ihrer .vimrc-Datei einzustellen.

1voto

Jeremy Logan Punkte 46499

Ich glaube, so etwas sollte funktionieren, wenn Sie bash zur Verfügung haben:

#!/bin/bash
if [ "$TERM" = "xterm-256color" ]; then
    # do stuff for 256
else
    if [ "$TERM" = "xterm" ]; then
        # do stuff for 16
    else
        # do something else entirely
    fi
fi

0voto

Mein Pseudocode-Versuch für .screenrc

[ -e t_Co(256) ] . ColorFile

Das Gleiche auf Englisch

If 256 color support, then source ColorFile.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X