2009-05-29 4 views
3

Ich hätte gerne eine if-else-Schleife in .screenrc für die folgenden Codes, so dass es ausgeführt wird, wenn mein Terminal 256 Farben unterstützt. Andernfalls wird es nicht ausgeführt.Nicht einstellbare Farben entsprechend der Terminal-Unterstützung in .screenrc

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 machen?

Antwort

2

Dies sollte bereits von der Termdatenbankdatei festgelegt werden. In meinem Fall ist mein Standardterminal xterm. Es verwendet acht Farben, die in vi unter Verwendung des

reflektiert wird: set Termcap

Befehl eine Inspektion des t_Co Element, das auf 8 gesetzt ist, wenn ich mein Endgerät zu einem anderen Terminaltyp wie gnome-256color ändern, die verwendet 256 Farben, dann vi zeigt t_Co als 256. Ich bin mir nicht sicher, warum Sie dies in Ihrer .vimrc-Datei versuchen sollten.

+0

Vielen Dank für das Stück von Informationen! Dann besteht das einzige Problem darin, eine if-else-Schleife in .screenrc zu haben. –

0

Mein Pseudo-Code Versuch für .screenrc

[ -e t_Co(256) ] . ColorFile 

Das gleiche auf Englisch

If 256 color support, then source ColorFile. 
1

Ich glaube, so etwas wie dies 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 
+0

Meine Terminalanwendung ist iTerm von OS/X. Ich bin nicht sicher, ob Ihr Code funktioniert oder nicht, da ich keine Beweise habe, dass es funktioniert. –

+2

Nun, Sie könnten es versuchen. –

+0

Was passiert, wenn Sie auf OSX "cat $ TERM" eingeben? –