我知道我可以使用set list listchars=...
来显示NonText
和SpecialKey
个字符,以便突出显示不同类型的非文本字符。总的来说,这是直截了当的。但是它有一个视觉副作用让我感到不安 - 当光标线设置为listchars
时,将光标“悬停”在一条线上会以不同的颜色突出显示。 this thread已经提到了这个问题,并且似乎没有解决这个问题的方法。
作为一个结果,我开始玩隐藏功能,这让我得到了不同的结果。 set concealcursor=n||v||i||c
让我可以控制隐藏字符可见的模式。我希望能够看到隐藏的字符,所以我设置了以下内容:
function! ConcealNonText()
set conceallevel=1
set concealcursor=nvic
syntax match NonText / / conceal cchar=·
endfunction
augroup ConcealNonText
autocmd!
autocmd VimEnter * call ConcealNonText()
augroup END
因此,无论我目前处于何种模式,它都会突出显示所有空间。但同样会产生令人不安的副作用 - 当我在视觉模式下标记线条或用光标线突出显示一条线条时,突出显示区域会变亮在发现隐藏字符的地方中断。只需看截图:
选择区域的可视模式:
带光标的普通模式:
所以我想我们试试set concealcursor=ic
。这会导致突出显示区域不间断,但会隐藏字符。
那么在本文开头我提到的线程是否存在某个地方以及某种方式解决方案,或者在使用set concealcursor=nvic
时是否有任何方法可以使光标和视觉选择区域不中断?
答案 0 :(得分:-1)
我相信你已经设置了'cursorline'。 CursorLine
突出显示组定义了相同的突出显示。您set nocursorline
,(可以加快线条移动)或更改CursorLine
突出显示组fg颜色。