Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 光标线和非文字/特殊标记高亮显示冲突_Vim - Fatal编程技术网

Vim 光标线和非文字/特殊标记高亮显示冲突

Vim 光标线和非文字/特殊标记高亮显示冲突,vim,Vim,使用:set cursorline和:set list,非文本和SpecialKey突出显示组中的字符(例如,每行末尾的$,以及由Ctrl+VEnter生成的^M)在光标位于同一行时将失去突出显示,恢复到Normal突出显示组,与任何其他平淡文本一样。这是非常混乱、丑陋和糟糕的 以下是我的配置中的相关亮点: :hi Conceal term=reverse cterm=none ctermfg=237 ctermbg=none :hi CursorLine

使用
:set cursorline
:set list
非文本
SpecialKey
突出显示组中的字符(例如,每行末尾的
$
,以及由Ctrl+VEnter生成的
^M
)在光标位于同一行时将失去突出显示,恢复到
Normal
突出显示组,与任何其他平淡文本一样。这是非常混乱、丑陋和糟糕的

以下是我的配置中的相关亮点:

:hi Conceal      term=reverse    cterm=none      ctermfg=237     ctermbg=none
:hi CursorLine   term=underline  cterm=none      ctermfg=none    ctermbg=235
:hi NonText      term=reverse    cterm=none      ctermfg=237     ctermbg=none
:hi Normal       term=none       cterm=none      ctermfg=252     ctermbg=234
:hi SpecialKey   term=reverse    cterm=none      ctermfg=14      ctermbg=23

无论我的突出显示配置如何(包括根本没有配置),问题仍然存在。我知道一些突出显示组总是胜过其他组,但语法突出显示和其他组的突出显示(例如,
隐藏
)保持不变;有没有办法让
非文本
SpecialKey
保留它们的亮点?

据我所知,没有。Bram Moolenaar在这个问题上:

没有解决办法。[…]光标线突出显示需要否决语法突出显示,否则它会在几种情况下消失,特别是如果语法突出显示使用背景突出显示


如果只想突出显示光标所在的行号,可以使用

hi CursorLineNr  term=underline  cterm=none      ctermfg=none    ctermbg=235
hi CursorLine    term=NONE cterm=NONE

(vim8)

是否不可能使其中一个背景/前景突出显示优先?但是,大多数(如果不是所有的话)其他语法突出显示组不受影响;只有特殊字符被覆盖。如果它是统一的,我会理解的,例如光标线用普通组替换了所有语法突出显示,但它不是,你的回答暗示它是全部或无。