Не удалось установить цвета в соответствии с поддержкой терминала в .screenrc
-
06-09-2019 - |
Вопрос
Я хотел бы иметь цикл if-else в .экранrc для следующих кодов, чтобы он запускался, если мой терминал поддерживает 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?
Решение
Это уже должно быть задано файлом базы данных terminfo.В моем случае моим терминалом по умолчанию является xterm.Он использует 8 цветов, что отражается в vi с помощью
:установить ограничение по срокам
выполните проверку элемента t_Co, для которого установлено значение 8.Если я поменяю свой терминал на другой тип терминала, например gnome-256color, который использует 256 цветов, то vi покажет t_Co равным 256.Я не уверен, зачем вам нужно пытаться установить это в вашем файле .vimrc.
Другие советы
Я считаю, что что-то подобное должно сработать, если у вас есть доступный 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
Моя попытка создания псевдокода для .screenrc
[ -e t_Co(256) ] . ColorFile
То же самое и на английском
If 256 color support, then source ColorFile.