Я пытался выделить подсветку синтаксиса (с 256 цветами) vim
внутри screen
, которая работает внутри gterm
.
Вначале он работает отлично. То, что я подразумеваю под "в начале", после того, как я запустил screen
и введите vim
, цвета выглядят прекрасно, и на самом деле имеется 256 цветов.
Но через некоторое время (я не знаю точно, как долго) цвета автоматически возвращаются к внешнему виду, как будто есть только 8 (или 16?) цветов.
Например, после того, как это уже произошло, если я введу команду
hi Comment ctermfg=68
внутри vim
, комментарии кажутся "чистыми" зелеными; однако, если я открою другой внешний экран vim
(в том же терминале), то с той же командой комментарии выглядят как "желтоватый" зеленый цвет.
Ниже перечислены мои настройки .screenrc, относящиеся к цвету:
attrcolor b ".I"
defbce "on"
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
term xterm-256color
После запуска python script, чтобы отобразить все цвета, я обнаружил, что, возможно, это проблема самого экрана и не имеет ничего общего с vim.
Что я сделал, внутри сеанса screen
с проблемами, этот script дает 256 цветов, но многие из них на самом деле одинаковы; однако, когда я запускаю новый сеанс сеанса с той же конфигурацией, этот script дает 256 цветов, которые отличаются друг от друга.
Edit:
Вчера вечером я подключился к своему компьютеру Linux (который находится в моем офисе, и он всегда включен) с помощью putty
, а затем открыл сеанс screen
с несколькими окнами в нем. Цвета правильные прошлой ночью. Затем, прежде чем я заснул, отключил сеанс screen
и закрыл putty
.
Теперь, когда я снова присоединяю этот сеанс screen
в putty
, крах цветов: они выглядят так, как будто есть только 8 цветов.
Цвета находятся вне screen
(но все еще в putty
).
Edit:
Спустя три года после того, как я задал этот вопрос, сегодня я увидел подобную проблему. Проблема в том, что vim
может отображать 256 цветов вне screen
, а screen
может отображать 256 цветов с тестом script, но vim
не может отображать какой-либо цвет (может отображаться только черно-белый) внутри screen
. Как примечание для себя, вот файл .screenrc
, который я использую
hardstatus alwayslastline "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %Y-%m-%d %c"
shell "bash"
startup_message off
vbell off
altscreen on
attrcolor b ".I"
defbce "on"
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
term screen-256color
Решение проблемы уже упоминалось в принятом ответе, а именно: мне нужно включить
export TERM=xterm-256color
в .bashrc
.