vimで複数のハイライトルールを設定する


16

私はこれを私の.vimrcに追加することで、末尾の空白と特定の長さを超える行の両方を強調するルールを設定しようとしています:

highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
match ExtraWhitespace /\s\+$/

highlight OverLength ctermbg=lightgray guibg=lightgray
match OverLength /\%>80v.\+/

ただし、最後のいずれかのみをピックアップするようです。両方を同時に動作させる方法を見つけることができません。

回答:


9

一方通行:

highlight EWOL ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match EWOL /\%>20v.\+\|\s\+$/

別の:

highlight ExtraWhitespace ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
match ExtraWhitespace /\s\+$/

highlight OverLength ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
2match OverLength /\%>80v.\+/

また利用可能:3match。一度に最大3つの一致をアクティブにできます。またはmatchadd()、数量に制限なく一致を作成するために使用できます。

注: 3matchはmatchparenによって使用されるため、使用すると競合します。


7

を使用してmatchadd()、これを以下に追加します.vimrc

highlight ExtraWhitespace ctermbg=grey guibg=grey
call matchadd('ExtraWhitespace', '\s\+$', 11)

highlight OverLength ctermbg=lightgrey guibg=lightgrey
call matchadd('OverLength', '\%>80v.\+')

すべての一致を表示するには:

:echo getmatches()

一致を削除するには、を使用しますmatchdelete()


1

これを使うのはどうですか

:sy [ntax] match {group-name} [{options}] [excludenl] {pattern} [{options}]

:highlight ExtraWhitespace ctermbg=lightgray guibg=lightgray
:syntax match ExtraWhitespace /\s\+$/
:highlight OverLength ctermbg=lightgray guibg=lightgray
:syntax match OverLength /\%>80v.\+/

これを使用して多くのパターンを照合できます...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.