при использовании vim в tmux я вижу, что включена поддержка 256 цветов. с $ tput цветами
Однако изменение схемы цветов в vim в tmux изменит схему цветов для каждой строки, но не для всего фона. смотреть скриншот
Вот фрагмент моего файла .vimrc, например. Моя оригинальная цветовая схема соляризована и затем после запуска: colorscheme molokai вы видите, что происходит.
Информация
- гном-терминал
- удар
в моем ~ / .tmux.conf
set -g default-terminal "screen-256color"
в моем ~ / .vimrc
set t_Co=256
в моем ~ / .bashrc
# ryan
export TERM="xterm-256color"
# ryan
alias tmux="tmux -2"
в моем ~ / .profile
# ryan 256 color support
if [ -e /usr/share/terminfo/x/xterm-256color ]; then
export TERM='xterm-256color'
else
export TERM='xterm-color'
fi
Любые идеи, как я могу получить полное изменение цвета в Vim? Все ли мои фрагменты из файлов выглядят хорошо?
Ответы:
Судя по вашим .bashrc и .profile, оболочки внутри tmux переопределяют параметр 'default-terminal' в вашей конфигурации tmux. Что-то вроде этого:
TERM=screen-256color
TERM=xterm-256color
Вы можете проверить это, запустив
в свежей оболочке tmux.
Tmux довольно требователен к правильной настройке терминала. Если вы можете, установите значение термина в конфигурации терминала gnome, а не в вашем .bashrc. В противном случае, окружите эти настройки проверкой TERM «screen» или «screen-256color» и не сбрасывайте их в этом случае.
Tmux ДЕЙСТВИТЕЛЬНО хочет, чтобы терминал был установлен
screen
илиscreen-256color
источник
set -g default-terminal "screen-256color"
строку в вашем Tmux Conf.if [[ $TERM == xterm ]]; then TERM=xterm-256color; fi
, у меня это сработало.Как объяснялось здесь , отключите фоновое стирание цвета (BCE), очистив параметр
t_ut
терминала (запустите:set t_ut=
в Vim, а затем нажмите Control+, Lчтобы обновить дисплей терминала), чтобы цветовые схемы работали правильно, когда Vim используется внутри экранов tmux и GNU.источник
set t_ut=
в свой vimrc, что устраняет необходимость использовать команду вручную, и нет необходимости использовать <kbd> Control </ kbd> + <kbd> L </ kbd>, так как сеанс начинается с отключенной BCE.Я нашел лучший способ в этом посте . Вы можете создать псевдоним tmux,
tmux -2
который заставит tmux предположить, что оболочка использует терминал с 256 цветами.источник
Вот что у меня сработало в #Ubuntu и #Mac:
Перезагрузить настройки:
Настройте .bashrc для Mac (как он используется в tmux)
Установите параметр «терминал по умолчанию» в ~ / .tmux.conf.
источник
Быстрое решение заключается в запуске следующего в терминале.
export TERM=xterm-color
Вы можете добавить его в свой
~/.bash_profile
или другой профиль, чтобы всегда устанавливать на старте.источник
.zshrc
чтобы визуальный режим был действительно видимым.У меня была очень похожая проблема для gnome-terminal + tmux + vim, но она была распространена и на конкретную проблему комбинации клавиш:. Мне пришлось объединить несколько вещей вместе. Прежде всего мне нужно было настроить мой .tmux.conf в:
Тогда в .vimrc:
И это сделало работу для ключей и фона.
источник
Если вы по-прежнему сталкиваетесь с проблемами: я заметил, что vim возвращается к использованию параметра
t_Co=8
в tmux, даже если$TERM
он установлен вscreen-256color
. Мой обходной путь - этот фрагмент в vimrc:$TMUX
Переменная заполняется только , если внутри tmux сессии. В этом случае я разрешаю vim использовать 256 цветов. Обратите внимание, что я также отключил termguicolors, так как tmux не поддерживает истинные цвета.источник
Просто сейчас столкнулся с такой же проблемой. Основываясь на ответе Блоя и текущем содержании моего ~ / .profile (фактически, он такой же, как у winchendonsprings ), я решил свою проблему следующим образом:
~/.profile
:Логика проста: если мы не находимся внутри сессии tmux, тогда используем xterm (цветной или нет). В противном случае то же самое для экрана.
Может быть, это слишком многословно, но у вас есть идея.
источник