開き括弧と閉じ括弧を色付けする vim 用のレインボー プラグインがあることは知っていますし、vim が対応する括弧を強調表示できることも知っています。私が現在いる括弧の範囲内のすべてに下線を引くようにvimにお願いします。
例: を現在のカーソル位置とすると、次のようになります。
(a|bc (de fg))
すべてに下線を引きます。
(abc (de |fg))
だけに下線を引き(de fg)
ます。
それは可能ですか?
開き括弧と閉じ括弧を色付けする vim 用のレインボー プラグインがあることは知っていますし、vim が対応する括弧を強調表示できることも知っています。私が現在いる括弧の範囲内のすべてに下線を引くようにvimにお願いします。
例: を現在のカーソル位置とすると、次のようになります。
(a|bc (de fg))
すべてに下線を引きます。
(abc (de |fg))
だけに下線を引き(de fg)
ます。
それは可能ですか?
このマッチはかなりうまくいっているようです:
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 レベルの再帰を変更できます。速度への影響については確信が持てません。
で次のように視覚的に類似したことを行うことができます.vimrc
。
nmap <f12> m[%v%:sleep 350m<CR>`[
imap <f12> <Esc>m[%v%:sleep 350m<CR>`[a