Странное поведение цвета vim внутри экрана с 256 цветами

Я пытался заставить подсветку синтаксиса (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 .

45
задан Vadim Kotov 5 March 2018 в 11:34
поделиться