Когда я захожу в окно Ubuntu Lucid, подсказка выглядит довольно красиво, с цветами. Все по умолчанию, насколько я знаю. Вот мой внешний экран $ PS1:
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@dev\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
Но когда экран запускается, цвета исчезают. Все остальное в порядке, и мой экран может поддерживать цвета (обратите внимание, что .
и ..
в этом ls -al
синие), но подсказка - нет. В теории все должно быть точно так же. $ PS1 внутри экрана:
${debian_chroot:+($debian_chroot)}\u@dev:\w\$
РЕДАКТИРОВАТЬ: Это просто обычный экран ванили.
Вы можете редактировать следующую строку в вашем .bashrc (это # 39 в моем .bashrc):
#force_color_prompt=yes
Изменить на:
force_color_prompt=yes
Это может быть раздражающим, если Вы входите откуда-то, где цвет не поддерживается, но я нахожу это крайне маловероятным.
Файл .screenrc
для меня загадка. Мой гобелен, который я копирую из интернета. Тем не менее, я вижу несколько строк, имеющих отношение к вашей проблеме:
# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
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'
Я думаю, если вы добавите вышеупомянутые строки к своей, вы получите цвет. Вот мое целое .screenrc
для справки:
jake@daedalus:~$ cat .screenrc
startup_message off # skip splash screen
vbell off # Kill the annoying dog
# Voodoo
hardstatus alwayslastline
hardstatus string '%{= wk}%-Lw%{= KW}%50>%n%f* %t%{= dK}%+Lw%<'
# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
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'
# erase background with current bg color
defbce "on"
Ваша настройка PS1
должна быть установлена в .bashrc
, а не в .bash_profile
.
Если это не проблема, отредактируйте свой вопрос, включив в него строку, для которой вы установили PS1
.
Вы также можете попробовать запустить их:
echo "$TERM" # will probably print "screen"
tput setaf 2 | cat -vte # should print "^[[32m"
echo "$(tput setaf 2)"green"$(tput sgr0)" # should print "green" in green
Screen обычно использует специальный тип терминала, например «screen», или, если вы установите его в .screenrc, «screen-256color».
Просто посмотрите в вашем .bashrc оператор определения цвета и добавьте экран в список.
Например, что-то вроде этого:
case "$TERM" in
xterm)
color_prompt=yes
;;
screen)
color_prompt=yes
;;
*256*)
color_prompt=yes
;;
esac
Я использую терминалы с 256-цветными типами, поэтому мне просто нужно выражение case 256 , так как оно ловит xterm-256color, gnome -256color, и screen-256color. Ваш пробег может варьироваться. 115
Экран вызова с -T xterm
работает для меня так просто:
screen -T xterm
Нет необходимости изменять какие-либо файлы.