Não tenho um entendimento completo de como meu esquema de cores está interagindo com a term
configuração no vim e isso está impedindo minha capacidade de exibi-lo corretamente no neovim.
No meu arquivo .vimrc, o comportamento correto do esquema de cores em questão requer a configuração
set term=xterm
set t_Co=256
A omissão de uma dessas configurações resulta na exibição incorreta do esquema de cores:
correto incorreto diferente incorreto
O esquema é assim:
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
No neovim, term
não pode ser definido. Tentei invocar o neovim com um $ TERM manualmente definido da seguinte maneira:
TERM=xterm nvim
Isso produziu a exibição correta das cores no vim regular (ou seja, equivalente à definição do termo em .vimrc), mas no neovim se parece com isso:
Por que a combinação set term=xterm
e o set t_Co=256
necessário para produzir a exibição correta desse esquema de cores no vim e por que a combinação equivalente de configurações produz um resultado diferente no neovim?
Editar:
O padrão é que$TERM=xterm256-color
, por algum motivo, deve ser substituído xterm
no vim regular para que a cor seja exibida corretamente. Com a variável de ambiente no padrão 256, o neovim fica assim:
Isso é idêntico ao vim regular xterm256-color
, mas não como pretendido. Meu objetivo é entender por que o xterm hack é necessário / funcionando no vim e por que não parece o mesmo no neovim.
Observe que muitas das cores aparecem corretamente com a configuração da variável env do termo acima, com exceções notáveis como números de linha e plano de fundo. Suspeito que a maneira como as cores sejam especificadas nesse esquema de cores específico possa estar envolvida.
set term=xterm
.