Сегодня я заметил, что у меня не было 256 цветной поддержки в Weechat. Я решил, что это будет быстрым исправлением. Это не.
Первая вещь, которую я погуглил, состояла в том, как протестировать цветную поддержку в терминале. Я установил colortest
на моей локальной машине и когда я выполняю его, это показывает мне 256 цветов. Однако, когда я работаю echo $TERM
это продолжало показывать мне xterm
.
Так как я не знаю детали обо всех этих вещах, я пытался настроить его таким образом, что это совпадает с каждым учебным руководством по теме. Они все говорят, что это должно дать мне screen-256colors
.
Первая вещь, которую я сделал, была, добавляет это к моему .zshrc
файл:
# If the $term variable is xterm, change it to 256 colors!
if [ "$TERM" = "xterm" ]; then
# No it isn't, it's gnome-terminal
export TERM="xterm-256color"
fi
Это говорит xterm-256colors
вместо screen-256colors
. Это хорошо, некоторое учебное руководство сказало мне делать это.
Я запускаю новый терминал, echo $TERM
и я замечаю, что это действительно установлено. Разожгите a tmux
и посмотрите то, что это говорит мне, когда я ввожу echo $TERM
. Это говорит screen
. Таким образом, это должно показать мне screen-256colors
чтобы это работало правильно в weechat. Таким образом, затем я пытался измениться xterm-256colors
в моем .zshrc
файл к screen-256colors
но когда я делаю это, я получаю искаженный вывод. См. снимок экрана.
Таким образом, затем я погуглил о том, как заменить переменную для tmux. Я нашел эту ссылку. Это показывает вариант для конфигурирования tmux для использования 256 цветов. Это - вариант, который показывается почти во всех учебных руководствах.
set -g default-terminal "screen-256color"
Таким образом, я попробовал его, все же это не изменило вещь. Таким образом, я еще погуглил вокруг некоторых и нашел этот вопрос. Кавычка:
Tmux относительно требователен в отношении установки терминала правильно. Если Вы можете, установить термин значение в конфигурации терминала гнома, не в Вашем .bashrc. Сбой этого, окружите те настройки проверкой на"
screen
"или"screen-256color
"ТЕРМИН, и не сбрасывает их в этом случае.
Хорошо, таким образом, я понимаю это за пределами tmux
Я не должен использовать screen*
значения для $TERM
. Это хорошо, потому что это установлено на xterm-256colors
. Затем это ясно указывает, что я не должен переопределять $TERM
переменная, если это установлено на screen
. Который я удостоверился в использовании if
тест в моем .zshrc
файл.
Вещь, которая главным образом смущает меня, состоит в том, что 256 цветов на самом деле работают в tmux. См. снимок экрана ниже. Когда я работаю echo $TERM
внутри tmux это показывает screen
. Когда я работаю colortest-256
это показывает мне все цвета правильно. Все же я думаю, что weechat базируется на $TERM
переменная для показа цветов. И потому что я выполняю его внутри tmux
с $TERM
набор к screen
это предполагает, что у меня нет 256 цветной поддержки.
Я озадачен о том, как решить эту проблему. Все, что я хотел, было, некоторые раскрашивают weechat:>
Для полноты ниже мои два конфигурационных файла.
# Path to your oh-my-zsh installation.
export ZSH=/home/christophe/.oh-my-zsh
ZSH_THEME="flazz"
plugins=(git command-not-found common-aliases dircycle lein)
# Show dots for progress
COMPLETION_WAITING_DOTS="true"
##########
## PATH ##
##########
# Export directory if it exists.
#if [ -d "/usr/local/go/bin" ]; then
# export PATH=$PATH:/usr/local/go/bin
#fi
#############
## ALIASES ##
#############
alias randompass="< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;"
############
## TWEAKS ##
############
# Disable shared history
setopt no_share_history
# Start existing or new tmux session each shell startup
#[[ $TERM != "screen" ]] && exec tmux attach -d
alias chat='tmux attach -dt weechat || tmux new -s weechat \; new-window htop'
# If the $term variable is xterm, change it to 256 colors!
if [ "$TERM" = "xterm" ]; then
# No it isn't, it's gnome-terminal
export TERM="xterm-256color"
fi
######################
# User configuration #
######################
export PATH="/home/christophe/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
source $ZSH/oh-my-zsh.sh
# 256 color support
set -g default-terminal "screen-256color"
В первую очередь, я хотел бы подтвердить то, под чем Вы уже выяснили, а именно, это непосредственно gnome-terminal
(то есть, за пределами tmux
или screen
) необходимо установить TERM=xterm-256color
, тогда как внутри tmux
или screen
это должно быть установлено на TERM=screen-256color
.
По-видимому, Ваш .zshrc
сегмент правильно устанавливает его для оболочки, это выполняется непосредственно терминалом гнома.
Я не уверен во что потребности быть вставленным .tmux.conf
, Я решил его в моем .bashrc
так же к Вашему .zshrc
фрагмент для xterm-256color. Я также удаляю TERMCAP
который установлен screen
и причины некоторые проблемы, но по-видимому tmux
не устанавливает его так, это не должно иметь значения для Вас.
if [ "$TERM" = "xterm" ]; then
export TERM=xterm-256color
fi
if [ "$TERM" = "screen" -o "$TERM" = "screen-256color" ]; then
export TERM=screen-256color
unset TERMCAP
fi
Это решает проблему для Вас?
Между прочим, вместо этого отрывки, копируя Ваш .tmux.conf
также наборы это правильно для меня (на Ярком), таким образом, Вы на правильном пути, это должно работать. Есть ли, возможно, что-то еще полученное Вашим zsh (например, глобальная конфигурация или oh-my-zsh), который возвращается к 8/16-color TERM=screen
?