2

開き括弧と閉じ括弧を色付けする vim 用のレインボー プラグインがあることは知っていますし、vim が対応する括弧を強調表示できることも知っています。私が現在いる括弧の範囲内のすべてに下線を引くようにvimにお願いします。

例: を現在のカーソル位置とすると、次のようになります。

(a|bc (de fg))

すべてに下線を引きます。

(abc (de |fg))

だけに下線を引き(de fg)ます。

それは可能ですか?

4

2 に答える 2

7

このマッチはかなりうまくいっているようです:

syn match Foo /([^(]*\%#.*)/
hi link Foo Underlined

~/.vimrc または特定の言語の構文ファイルに入れることができます。

ステップバイステップ:

syn match Foo- 正規表現に基づいて構文グループを照合し、それに Foo という名前を付けます

/([^(]*(- a の後に続く無制限の数または 0 以外の任意の文字に一致します(

\%#- 現在のカーソル位置に合わせる

.*- 任意の文字の無制限または 0 に一致

)- 抹茶)

hi link Foo Underlined- Foo グループを Underlined にリンクします

正規表現はネストされたサブ構造には理想的ではないため、これは不完全なソリューションであることに注意してください。Rainbow Parentthesisは、最大 13 レベルの再帰を追加することでこれを実現しますが、無限の再帰は提供しません。任意の量の再帰を実現するために提供した正規表現の例を使用して、13 レベルの再帰を変更できます。速度への影響については確信が持てません。

于 2012-08-28T15:05:18.690 に答える
4

で次のように視覚的に類似したことを行うことができます.vimrc

nmap <f12> m[%v%:sleep 350m<CR>`[
imap <f12> <Esc>m[%v%:sleep 350m<CR>`[a

ソースの詳細情報

于 2012-08-28T14:49:34.330 に答える