私の配色がtermvim の設定とどのように相互作用しているかを完全に理解していないため、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設定できません。私は次のように$ TERMを手動で設定してneovimを起動しようとしました:
TERM=xterm nvim
これにより、通常のvim(.vimrcで用語を設定するのと同等)で色が正しく表示されますが、neovimでは次のようになります。

なぜの組み合わせであるset term=xtermとset t_Co=256VIMこの配色の正しい表示を生成するのに必要では、なぜ設定の等価組み合わせはneovimに異なる結果を生成しますか?
編集:
デフォルトは $TERM=xterm256-colorであり、何らかの理由xtermで通常のvimでオーバーライドして、カラー表示を正しくする必要があります。環境変数をデフォルトの256に設定すると、neovimは次のようになります。

これはを使用した通常のvimと同じですxterm256-colorが、意図したとおりではありません。私の目標は、xtermハックがvimで必要/動作する理由と、neovimで同じように見えない理由を理解することです。
上記のenv変数設定では、多くの色が正しく表示されることに注意してください。顕著な例外は行番号と背景です。この特定の配色での色の指定方法が関係しているのではないかと思います。
set term=xtermます。