Je ne comprends pas bien comment mon jeu de couleurs interagit avec le term
paramètre dans vim et cela empêche ma capacité à l'afficher correctement dans neovim.
Dans mon fichier .vimrc, le comportement correct du jeu de couleurs en question nécessite la définition
set term=xterm
set t_Co=256
L'omission de l'un de ces paramètres entraîne un affichage incorrect du jeu de couleurs:
correct incorrect différent incorrect
Le schéma ressemble à ceci:
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
Dans neovim, term
ne peut pas être défini. J'ai essayé d'appeler neovim avec un $ TERM défini manuellement comme ceci:
TERM=xterm nvim
Cela a produit l'affichage correct des couleurs dans vim régulier (c'est-à-dire équivalent à la définition d'un terme dans .vimrc), mais dans neovim, cela ressemble à ceci:
Pourquoi la combinaison de set term=xterm
et set t_Co=256
nécessaire pour produire l'affichage correct de ce jeu de couleurs dans vim et pourquoi la combinaison équivalente de paramètres produit un résultat différent dans neovim?
Éditer:
La valeur par défaut est $TERM=xterm256-color
, qui, pour une raison quelconque, doit être remplacée xterm
dans vim standard pour que l'affichage des couleurs soit correct. Avec la variable d'environnement à 256 par défaut, neovim ressemble à ceci:
C'est identique à vim régulier avec xterm256-color
, mais pas comme prévu. Mon objectif est de comprendre pourquoi le hack xterm est nécessaire / fonctionne dans vim, et pourquoi il n'a pas la même apparence dans neovim.
Notez que la plupart des couleurs apparaissent correctement avec le paramètre de variable env ci-dessus, à l'exception notable des numéros de ligne et de l'arrière-plan. Je soupçonne que la façon dont les couleurs sont spécifiées dans ce schéma de couleurs spécifique peut être impliquée.
set term=xterm
.