Невозможно установить цвета в соответствии с поддержкой терминала в .screenrc - PullRequest
3 голосов
/ 30 мая 2009

Я хотел бы иметь цикл if-else в .screenrc для следующих кодов, чтобы он выполнялся, если мой терминал поддерживает 256 цветов. В противном случае он не запускается.

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"

Как сделать цикл if-else в .screenrc?

Ответы [ 3 ]

2 голосов
/ 03 июня 2009

Это должно быть уже установлено в файле базы данных terminfo. В моем случае мой терминал по умолчанию - xterm. Он использует 8 цветов, которые отражаются в vi с помощью

: установить termcap

команда проверки элемента t_Co, который установлен на 8. Если я изменю свой терминал на другой тип терминала, например gnome-256color, который использует 256 цветов, то vi покажет t_Co равным 256. Я не уверен, зачем вам чтобы попытаться установить это в вашем файле .vimrc.

1 голос
/ 13 июня 2009

Я считаю, что что-то подобное должно работать, если у вас есть доступный bash:

#!/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 голосов
/ 31 мая 2009

Моя попытка псевдокода для .screenrc

[ -e t_Co(256) ] . ColorFile

То же на английском

If 256 color support, then source ColorFile.
...