So definieren Sie ein gutes Highlight-Gesicht

9

Ich würde gerne verwenden global-hl-line-mode, aber einigen meiner Themen fehlt ein gutes Highlight-Gesicht. Gibt es eine allgemeine Möglichkeit, eine zu definieren (das ist keine umgekehrte Farbe)? Ich möchte die Syntaxhervorhebung beibehalten, die bei meinen Versuchen fehlgeschlagen ist.

max
quelle
Was genau meinst du mit "Weg zu definieren"? Fragen Sie nach Vorschlägen für den Auftritt? Wie definiert man ein Gesicht, das ein bestimmtes Aussehen verleiht? Wie kann eine Gesichtsdefinition den Effekt der Gesichtsdefinitionen eines Themas ersetzen? Haben Sie versucht, das von verwendete Gesicht anzupassen global-hl-line-mode? In der Summe geben Sie die Frage bitte klarer an - sie hilft den Menschen, Ihnen zu helfen.
Drew

Antworten:

17

Dies ist wirklich eine Ansichtssache, aber ich habe immer festgestellt, dass es am hl-linebesten ist, einen etwas dunkleren Hintergrund als die Standardeinstellung zu haben.

Ich möchte die Syntaxhervorhebung beibehalten, die bei meinen Versuchen fehlgeschlagen ist.

Wenn Sie die Syntaxhervorhebung beibehalten möchten, stellen Sie sicher, dass das hl-lineGesichtsattribut :foregroundNull ist, und setzen Sie das :backgroundAttribut auf das gewünschte Attribut.

So sieht es für mich mit diesen Einstellungen aus:

(set-face-attribute 'default nil :background "gray15")
(set-face-attribute 'hl-line nil :foreground nil :background "gray5")

Geben Sie hier die Bildbeschreibung ein

Dem Klang nach möchten Sie keine fest codierten Farben, da Sie die Themen ändern. Emacs können :backgrounddas hl-lineGesicht automatisch auf eine Farbe einstellen, die etwas dunkler als die aktuelle Standardeinstellung ist :background:

(require 'color)

(defun set-hl-line-color-based-on-theme ()
  "Sets the hl-line face to have no foregorund and a background
    that is 10% darker than the default face's background."
  (set-face-attribute 'hl-line nil
                      :foreground nil
                      :background (color-darken-name (face-background 'default) 10)))

(add-hook 'global-hl-line-mode-hook 'set-hl-line-color-based-on-theme)

Dadurch wird der Hintergrund des Gesichts bei jeder Aktivierung auf eine Farbe eingestellt, die 10% dunkler als der Standardhintergrund ist global-hl-line-mode

Jordon Biondo
quelle