2017-05-22 2 views
0

Vim構文の強調表示定義コードを書きました。だから私はまだ元の構文として着色することXXXXXX部分を維持したい は、今私は折りたたみを使用することができますが、私は折れ線を持っているとき、私は折りたたみ機能部と、実際のコードVim構文で折りたたみ透明な色が定義されています

+-- 10 lines: XXXXXX 

ごとに異なる色にしたいですラインの残りの部分から目立つ色。 折り畳み構文の透明度はどのように定義できますか?

+0

私が答えとして投稿する前に、これがあなたが探しているものなら、pls tryしてください: ':hi!折りたたんだctermbg = none guibg = none' – Kent

+0

助けてくれてありがとう。それは折り畳まれた線を強調表示しませんが、元の強調表示はしません。 XXXXXXは折りたたまれた行の最初の行で、展開時にハイライトが付きます。 –

答えて

0

残念ながら、現時点では不可能です。 Folded(行全体)とFoldColumn(折り畳み状態の左側の表示用)の2つののハイライトグループがあります。同様に、「透明性」はここでは適用されません。 折りたたみテキストは、バッファ内容のカスタム[可能]抽出物です。実際のバッファの内容は折りたたまれ、レンダリングされません。

のレベルやネストされたフォールドのハイライトグループが異なるパッチは覚えていますが、それでもVimには含まれていません。

達成したいことは非常に視覚的に魅力的です。しかし、これを実装する際に次の困難があります。

通常のファイルタイプ構文(適用する)は、接頭辞+-- 10 lines:の後に一致する必要があります。多くの構文では、封じ込めや順序付けが精巧で、適用に失敗することがあります。他のものが適用されるかもしれないが(折り畳まれたもののために)、それらの規則的な文脈を失うので、次の行が混乱する。これは特別な構文規則(構文キーワードのような低レベルのものと単純な:syn matchを含む)で修正することができますが、これらはそれぞれの構文のコラボレーションを必要とするため、さまざまな著者によって数百のスクリプトを拡張する必要があります。

+0

私は、私が望んでいたことは簡単ではないことを理解しています。私の場合、折り畳まれたグループの最初の行の構文は1行で完了しているので、おそらく最初の行を残して2行目から折り畳むことができるので、最初の行はまだ色づけされています。詳細を説明していただきありがとうございます。 –

+0

ありがとうございます!はい、2行目からの折り畳みは1つの回避策です。しかし、最初の行が本当に「特別な」行で、強調表示が非常に重要な場合にのみ、これを実行します。それ以外の場合、すべての行が単一の論理ユニットを形成する場合、それらのすべてを折り畳むことは意味をなさないでしょう。 –

関連する問題