Wie kann man das Gesicht einer langen Linie verändern, ohne andere Schriftschaltanpassungen in EMACs zu beeinflussen?

StackOverflow https://stackoverflow.com/questions/8332041

Frage

Ich habe einen Code, den ich vor langer Zeit ausgeliehen habe, der ein langes Gesicht festlegt, wenn die Linie zu lang ist:

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

(Ich kenne jetzt übrigens über Schriftschloss-Add-Keywords; wie ich sagte, das ist irgendwie alt.)

Das Problem ist, dass dies das Gesicht der gesamten Linie verändert. Wenn ich also angehe, dass Langliniengesicht fett ist, verliere ich die gesamte kontextbezogene Anpassung der Zeile, und sie erscheint im Standardgesicht, aber fett.

Wie würde ich es dazu bringen, die kontextbezogene Färbung zu halten, aber alles mutig zu machen?

War es hilfreich?

Lösung

Sie überschreiben die Schriftart mit dem t In Ihrer Schriftschockspezifikation. Versuchen Sie, das zu ändern (0 'my-long-line-face t) entweder (0 'my-long-line-face prepend) oder (0 'my-long-line-face append).

Andere Tipps

Versuchen Sie diese Änderung in Ihrem Code:

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

Der Schlüssel besteht darin my-long-line-face zu dem folgenden Sub -Ausdruck - wie durch die 1 angegeben (anstelle der 0, die Sie hatten). Siehe die Info -Seite für Suchbasierte Schriftart für mehr Details.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top