У мене немає повного розуміння того, як моя колірна схема взаємодіє з term
налаштуваннями vim, і це перешкоджає моїй здатності змусити її правильно відображатися в neovim.
У моєму файлі .vimrc правильна поведінка відповідної кольорової гами вимагає налаштування
set term=xterm
set t_Co=256
Якщо пропустити будь-яке з цих налаштувань, це призведе до неправильного відображення кольорової гами:
виправити неправильно різні неправильні
Схема виглядає приблизно так:
set background=dark
hi clear
if exists("syntax_on")
syntax reset
endif
let g:colors_name="impact3"
if exists("g:impact_transbg")
hi Normal ctermfg=255 ctermbg=none
hi NonText ctermfg=DarkGray ctermbg=none
hi Statement ctermfg=Blue ctermbg=none
hi Comment ctermfg=DarkGray ctermbg=none cterm=bold term=bold
hi Constant ctermfg=173 ctermbg=none
hi Identifier ctermfg=Cyan ctermbg=none
hi Type ctermfg=DarkGreen ctermbg=none
hi Folded ctermfg=0 ctermbg=235 cterm=underline term=none
hi Special ctermfg=Blue ctermbg=none
hi PreProc ctermfg=LightGray ctermbg=none cterm=bold term=bold
hi Scrollbar ctermfg=Blue ctermbg=none
hi Cursor ctermfg=white ctermbg=none
hi ErrorMsg ctermfg=Red ctermbg=none cterm=bold term=bold
hi WarningMsg ctermfg=Yellow ctermbg=none
hi VertSplit ctermfg=0 ctermbg=0
hi Directory ctermfg=Cyan ctermbg=DarkBlue
hi Visual ctermfg=White ctermbg=Gray cterm=underline term=none
hi Title ctermfg=255 ctermbg=Blue
hi String ctermfg=Blue ctermbg=none
hi StatusLine term=bold cterm=bold,underline ctermfg=White ctermbg=Black
hi StatusLineNC term=bold cterm=bold,underline ctermfg=Gray ctermbg=Black
hi LineNr term=bold cterm=bold ctermfg=2 ctermbg=None
hi Search ctermfg=Black ctermbg=2
hi TabLine ctermfg=0 ctermbg=DarkGray
hi TabLineFill ctermfg=DarkGray ctermbg=DarkGray
else
hi Normal ctermfg=White ctermbg=Black
hi NonText ctermfg=DarkGray ctermbg=Black
hi Statement ctermfg=Blue ctermbg=Black
hi Comment ctermfg=DarkGray ctermbg=Black cterm=bold term=bold
hi Constant ctermfg=DarkCyan ctermbg=Black
hi Identifier ctermfg=Cyan ctermbg=Black
hi Type ctermfg=DarkGreen ctermbg=Black
hi Folded ctermfg=DarkGreen ctermbg=Black cterm=underline term=none
hi Special ctermfg=Blue ctermbg=Black
hi PreProc ctermfg=LightGray ctermbg=Black cterm=bold term=bold
hi Scrollbar ctermfg=Blue ctermbg=Black
hi Cursor ctermfg=white ctermbg=Black
hi ErrorMsg ctermfg=Red ctermbg=Black cterm=bold term=bold
hi WarningMsg ctermfg=Yellow ctermbg=Black
hi VertSplit ctermfg=White ctermbg=Black
hi Directory ctermfg=Cyan ctermbg=DarkBlue
hi Visual ctermfg=White ctermbg=DarkGray cterm=underline term=none
hi Title ctermfg=White ctermbg=DarkBlue
hi StatusLine term=bold cterm=bold,underline ctermfg=White ctermbg=Black
hi StatusLineNC term=bold cterm=bold,underline ctermfg=Gray ctermbg=Black
hi LineNr term=bold cterm=bold ctermfg=White ctermbg=Black
endif
У neovim term
не можна встановити. Я спробував викликати neovim за допомогою встановленого вручну $ TERM так:
TERM=xterm nvim
Це призвело до правильного відображення кольорів у регулярному vim (тобто еквівалентному встановленню терміна в .vimrc), але в неовімі це виглядає приблизно так:
Чому поєднання set term=xterm
та set t_Co=256
необхідне для правильного відображення цієї кольорової гами в vim і чому еквівалентна комбінація налаштувань призводить до іншого результату в неовімі?
Редагувати:
Типовим є те $TERM=xterm256-color
, що з певних причин доводиться переосмислювати xterm
в звичайному форматі vim, щоб правильно відобразити кольори. Зі змінною середовища за замовчуванням 256, neovim виглядає так:
Це ідентично звичайному vim xterm256-color
, але не за призначенням. Моя мета - зрозуміти, чому хакер xterm необхідний / працює в vim, і чому він не виглядає так само в neovim.
Зауважте, що багато кольорів відображаються правильно із вказаними вище параметрами змінної env, помітними винятками є номери рядків та фон. Я підозрюю, що спосіб визначення кольорів у цій конкретній колірній гамі може бути залучений.
set term=xterm
.