12

特定のパターンに一致するライン全体をvimで強調表示したいと思います。(を実行することで)ハイライトする行のすべてのテキストを取得できますsyn match MyMatch "^.*text-to-match.*$"が、常にテキストの最後で停止します。CursorLineを強調表示するなど、学期の終わりまで続けたいと思います。

私はそれを包み込むことを期待し$て、に置き換えてみました。\n^変化なし。(実際にこれが機能するとは思っていませんでしたが、試してみても害はありません。)また、syn-pattern-offset(ここで読んだもの:http://vimdoc.sourceforge.net/htmldoc/syntax)を調整してみました。 html#:syn-pattern)。簡単に言うと、追加he=he-5すると5つ少ない文字が強調表示されますがhe=he+5、強調表示する文字がないため、余分な文字は表示されません。

これはvim構文を作成する最初の試みであり、vimは比較的初めてです。優しく、説明を含めてください。

ありがとう!

(編集:含めるのを忘れた、これは複数行のハイライトです。おそらく少し複雑さが増します。)

4

3 に答える 3

15

ファイル名(バッファ)と行全体のハイライトを明示的に識別する必要があるため、あまり適応性がありませんが、signコマンドを使用できるようです。

:signメカニズムを使用して、行全体を強調表示することができます。
例は:help sign-commands
一言で言えばで見つけることができます:

:sign define wholeline linehl=ErrorMsg
:sign place 1 name=wholeline line=123 file=thisfile.txt

明らかに、linehl引数の背景の色を変更するハイライトグループを選択する必要があります。

出典:Erik Falor、vimメーリングリスト

于 2010-12-12T10:40:05.280 に答える
10

上のドキュメントからsyn-pattern

強調表示された領域が、一致したテキストの外側になることはありません。

これが機能するようになれば、私は自分自身を驚かせたと思いますが、それでも、Vimは常に驚きに満ちています。

于 2010-01-27T21:36:45.890 に答える
0

:set cursorline:setcursorcolumn次のように色を変更することもできます::hi cursorline:hicursorcolumn通常のterm=、ctermfg =、ctermbg=などを使用してこの回答を参照 VIM現在の行全体を強調表示

于 2018-07-05T08:52:27.370 に答える