Nie do końca rozumiem, w jaki sposób mój schemat kolorów wchodzi w interakcje z term
ustawieniem w vimie, a to utrudnia moją zdolność do prawidłowego wyświetlania w neovim.
W moim pliku .vimrc prawidłowe zachowanie danego schematu kolorów wymaga ustawienia
set term=xterm
set t_Co=256
Pominięcie któregokolwiek z tych ustawień powoduje nieprawidłowe wyświetlanie schematu kolorów:
popraw niepoprawne inne niepoprawne
Schemat wygląda następująco:
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
W neovim term
nie można ustawić. Próbowałem wywołać neovim z ręcznie ustawionym $ TERM tak:
TERM=xterm nvim
Spowodowało to prawidłowe wyświetlanie kolorów w zwykłym vimie (tj. Równoważne ustawieniu terminu w .vimrc), ale w neovim wygląda to tak:
Dlaczego kombinacja set term=xterm
i set t_Co=256
konieczna jest poprawna prezentacja tego schematu kolorów w vimie i dlaczego równoważna kombinacja ustawień daje inny efekt w neovimie?
Edytować:
Domyślnie jest to $TERM=xterm256-color
, co z jakiegoś powodu musi zostać zastąpione xterm
w zwykłym vimie, aby kolory były wyświetlane poprawnie. Z domyślną zmienną środowiskową 256, neovim wygląda następująco:
Jest to identyczne z regularnym vimem xterm256-color
, ale nie zgodnie z przeznaczeniem. Moim celem jest zrozumienie, dlaczego hack Xterm jest konieczny / działa w vimie i dlaczego nie wygląda tak samo w neovimie.
Zauważ, że wiele kolorów pojawia się poprawnie z powyższym ustawieniem zmiennej env, przy czym znaczącymi wyjątkami są numery linii i tło. Podejrzewam, że może to dotyczyć sposobu, w jaki kolory są określone w tym konkretnym schemacie kolorów.
set term=xterm
.