0

syn現在のカーソル行の両側に特定の数の行を選択するコマンドをいくつか書きたいと思います。たとえば、カーソルを置く場所に特定の強調表示を備えた 3 行の「ビュー ポート」が常に存在するようにします。 .

可能であれば、\%#アトムが関係すると思いますが、実際にそれを使用して一致させる方法がわかりません。

だから基本的に、私はこれをしたい:

:syn match ViewPort <SOME-PATTERN-PROBABLY-INVOLVING-%#>
:hi ViewPort guibg=pink

例えば。私が探している効果は と非常に似てcursorlineいますが、現在の行だけでなく、現在の行に上と下の 1 つを加えたもの (または上に 2 つと下に 2 つなど) と言うことができます。

私の最終目標は、ほとんどのテキストが同じ前景色と背景色を持ち、効果的に見えないようにする「安全な」構文を持ち、一度に「見える」テキストの小さなウィンドウを 1 つだけ持つことです。

4

1 に答える 1

1

この'cursorcolumn'オプションが導入されたのは、構文 / を使用してそのようなものをエミュレートする以前の試み:matchが遅く、不十分だったからです。要件は非常に大きなカーソルラインのように見えるため、失敗する可能性があります。

特に、ヘルプで説明されているように\%#、現在のカーソル位置のアトムは自動的に更新されません。

警告: パターンを使用した後にカーソルを移動すると、結果が無効になります。Vim は一致を自動的に更新しません。これは、構文の強調表示と「hlsearch」に特に関連しています。

したがって:autocmd CursorMoved、を使用する必要があり、おそらく非常に遅くなります。

于 2013-10-16T07:24:52.990 に答える