構文の強調表示によってカーソル線の背景色を上書きする


7

現在の行の背景色を次のように薄い灰色に設定しました。

hi CursorLine cterm=NONE ctermbg=253

(私の配色は白地に黒であることに注意してください。)

ただし、このようにして、構文の強調表示で設定された背景色が上書きされます。つまり、現在の行の単語が強調表示されている場合(たとえば、白地に赤)、テキストは白地に灰色で表示されます。カーソルを別の行に移動すると、その行(またはその一部)が赤で強調表示されるはずです。

私が欲しいのは、特別な背景色が設定されていない現在の行の部分だけがカーソルラインによってライトグレーで強調表示されることですが、カーソルラインの強調表示は構文の強調表示によって上書きされます。

これは可能ですか?

PS:この問題が発生した特定のケースは、git commit tmp-fileの2行目で、2行目のテキストは(理由は問わず)赤白になっています。


「何でも」の理由は、git commitの2行目を空白のままにすることになっているためです。これはgit commitsで推奨されるスタイルです。1行の短い行(〜60文字)でコミットを説明し、その後に空白行が続き、その後に必要なだけ、またはできるだけ大きな説明が続きます。
Shahbaz

@Shahbaz:わかりやすく説明してくれてありがとう。私はこれまでいくつかのプライベートなものにgitを何気なく使ってきましたが、実際にそれを学んだことがない(つまり、ガイドなどを読んだ)ため、まだそのようなことを知りません。gitの本を読むことは、gitをより広範囲に使用し始める前の私のTODOリストにあります。
flotzilla、

Gitは素晴らしく、想像を超えることができますが、日常的に使用するのは非常に簡単です。幸せな学習!
Shahbaz

回答:


5

私はかつていたvim_devメーリングリストに変更を提案したが、ブラムは、以下の理由で、それに反対しました。

構文の背景色が「カーソル線」の背景色を無効にすると、カーソル線がバラバラになるか、ほとんど表示されなくなります。

オルタナティブ

matchadd()機能は、次のように指定することができます{priority}ハイライトは、目の前にまたはcursorlineの後ろになるかどうかを決定します。残念ながら、これは構文の強調表示とはまったく異なり、スコープも異なります。したがって、構文の問題には役立ちませんが、他の用途、たとえばMarkプラグインによる強調表示を有効にします

回避策

reverse属性を使用すると、構文の背景色を維持できます。たとえば、定義する代わりに

:hi Todo guifg=Black guibg=Yellow

これを行う:

:hi Todo guifg=Yellow guibg=Black gui=reverse

残念ながら、今、別の問題があります。テキスト(前景)の色が黒からカーソル線の色に変わります。これは、あなたが言及した白地に赤のエラーを強調表示する場合((bright)-cursorline-on-redに変わります)にはうまく機能しますが、私のTodo例(cursorline-on-Yellow)にはあまり適していません。さらに、このreverse属性はすべての端末でサポートされているわけではありません。

概要

残念ながら、簡単な修正はありません。欠点にもかかわらず、私は上記の回避策を使用します(@romainlへのkudos、その構成で最初にこれを見た!)


ご回答有難うございます。しかし、提案された解決策/回避策は構文ファイルを変更すること(つまり、特定の強調表示がカラーライン強調表示よりも優先されるように指定すること)であることを正しく理解していますか?もしそうなら、それは私が探しているものではありません、私が指定したいのは、カラーラインの強調表示を構文の強調表示の後ろに配置することです。その場合、私はそれが機能する方法を受け入れる必要があります。つまり、構文の強調表示は常にカラーラインの強調表示によって上書きされます。
flotzilla、

構文ファイルは通常、色を定義せず、:hi link既存のグループ(などTodo)に対してのみ定義します。私の回避策では、直接またはで個人のカラースキームを変更する必要があります.vimrc
Ingo Karkat

わかりました、はい、多かれ少なかれそれは私が何を意味していたかを2番目に考えました。それでも、カーソルラインの動作を変更してハイライトで上書きするのではなく、特定のハイライトの動作を変更する必要があります(明らかに不可能です)。ですから、とりあえず運命を受け入れるだけですが、私を悩ませる特定のハイライトがいくつかあり、それを選択的に修正できる場合は、この回避策が役立つかもしれません。
flotzilla、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.