Я пытался заставить подсветку синтаксиса (256 цветов) vim
работать внутри экрана
, то есть работает внутри 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 для отображения всех цветов я обнаружил, что, возможно, это проблема самого экрана и не имеет ничего общего с vim.
Я сделал то, что внутри screen
сеанс с проблемами, этот скрипт дает 256 цветов, но многие из них на самом деле одинаковы; однако, когда я запускаю новый сеанс экрана с той же конфигурацией, этот сценарий дает 256 цветов, которые отличаются друг от друга.
Редактировать:
Вчера вечером я подключился к своему компьютеру Linux (который находится в моем офисе, и он всегда включен) с помощью замазки
, затем открылся сеанс screen
с несколькими окнами в нем. Цвета верные вчера вечером. Затем перед сном я отключил сеанс экрана
и закрыл замазку
.
Теперь утром, когда я прикрепляю сеанс экрана
в шпатлевка
снова, цвета разбиваются: они выглядят так, как будто цветов всего 8.
Цвета хороши вне экрана
(но все еще в шпатлевке
).
] Edit:
Три года спустя после того, как я задал этот вопрос, сегодня я увидел похожую проблему. Проблема в том, что vim
может отображать 256 цветов за пределами экрана
, а экран
может отображать 256 цветов с помощью тестового сценария, но vim
может Не отображает никакого цвета (может отображаться только черно-белый) внутри экрана
. В качестве примечания для себя вот файл .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
.