list listchars=...
set to showNonText
とSpecialKey
characters を使用して、テキスト以外のさまざまな種類の文字を強調表示できることを知っています。一般に、これは簡単で機能します。しかし、それは私を邪魔する視覚的な副作用があります - カーソルラインがオンに設定されているときにカーソルを行の上に「ホバリング」している間listchars
、別の色で強調表示されます。この問題はすでにこのスレッドで言及されており、動作を回避する解決策はないようです。
結果として、私は隠蔽機能を試し始めましたが、結果はまちまちです。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
か?