10

list listchars=...set to showNonTextSpecialKeycharacters を使用して、テキスト以外のさまざまな種類の文字を強調表示できることを知っています。一般に、これは簡単で機能します。しかし、それは私を邪魔する視覚的な副作用があります - カーソルラインがオンに設定されているときにカーソルを行の上に「ホバリング」している間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

その結果、現在のモードに関係なく、常に表示されるすべてのスペースが強調表示されます。しかし、ここでも厄介な副作用があります。ビジュアル モードで行をマークしたり、カーソルラインで行を強調表示したりすると、強調表示領域が隠されている場所で中断されます。文字が見つかります。スクリーンショットをご覧ください:

選択した領域のビジュアル モード:

ビジュアルモードでの Vim 隠し文字

カーソルライン付きの通常モード:

カーソルラインを使用した通常モードのVim隠し文字

だからやってみようと思っset concealcursor=icた。これにより、ハイライトされた領域が中断されなくなりますが、文字は非表示になります。

ここに画像の説明を入力

では、この投稿の冒頭で言及したスレッドの周りに何らかの解決策がありますか、または使用時にカーソルラインと視覚的な選択領域を中断しないようにする方法はありますset concealcursor=nvicか?

4

1 に答える 1

-1

「カーソルライン」が設定されていると思います。CursorLineハイライト グループは、同じハイライトを定義します。(行の移動を高速化できますset nocursorline)またはCursorLineハイライトグループのfg色を変更します。

于 2014-04-01T11:22:35.017 に答える