0

ずっと前に借りたコードがあり、行が長すぎると長い行の面を設定します。

 (add-hook 'font-lock-mode-hook
           (function
            (lambda ()
              (setq font-lock-keywords
                    (append font-lock-keywords
                            '( ("^.\\{133,\\}$" (0 'my-long-line-face t))
                              )
                            )
                    )
              )
            ))

(私は今、font-lock-add-keywordsについて知っています、ところで、私が言ったように、これはちょっと古いです。)

問題は、これによってライン全体の面が変わることです。したがって、長い行の面が太字であることを示すと、行のコンテキストのカスタマイズがすべて失われ、デフォルトの面に表示されますが、太字になります。

コンテキストカラーを維持しながら、すべてを大胆にする方法を教えてください。

4

2 に答える 2

2

tフォントロック仕様のでフォント化をオーバーライドしています。(0 'my-long-line-face t)(0 'my-long-line-face prepend)またはに変更してみてください(0 'my-long-line-face append)

于 2011-11-30T22:14:27.367 に答える
1

コードに次の変更を加えてみてください。

(add-hook 'font-lock-mode-hook
       (function
    (lambda ()
      (setq font-lock-keywords
        (append font-lock-keywords
            '( ("^.\\{133\\}\\(.*\\)$" (1 'my-long-line-face t))
              )
            )
        )
      )
    ))

重要なのは、正規表現に、長すぎない133文字に続くサブ式を持たせ、my-long-line-face次のサブ式に適用することです。これは、(0ではなく)1で示されます。詳細については、検索ベースのフォント化の情報ページを参照してください。

于 2011-11-30T20:25:00.377 に答える