Lesbare Farben für Bash-Skripte in Emacs   Vor kurzem aktualisiert!


Emacs hebt Shell- und Bash-Skripte standardmäßig mit verschiedenen Farben hervor. Je nach Farbschema können Zeichenketten, Kommentare, Funktionsnamen oder Variablen jedoch schlecht lesbar sein — insbesondere bei einem dunklen Hintergrund.

Mit custom-set-faces lassen sich diese Farben gezielt anpassen.

Die Konfiguration

Die folgende Einstellung verwendet helle und kontrastreiche Farben für wichtige Bestandteile eines Bash-Skripts:

(custom-set-faces
 '(font-lock-string-face
   ((t (:foreground "#87d7ff"))))
 '(font-lock-comment-face
   ((t (:foreground "#d0d0d0"))))
 '(font-lock-function-name-face
   ((t (:foreground "#ffaf5f"
                    :weight bold))))
 '(font-lock-variable-name-face
   ((t (:foreground "#5fd7d7")))))

Die Konfiguration kann in der Emacs-Datei ~/.emacs oder ~/.emacs.d/init.el gespeichert werden.

Bedeutung der einzelnen Einstellungen

Zeichenketten

'(font-lock-string-face
  ((t (:foreground "#87d7ff"))))

font-lock-string-face legt die Farbe von Zeichenketten fest. Dazu gehören beispielsweise Texte innerhalb von einfachen oder doppelten Anführungszeichen:

echo "Hallo Welt"

Die Zeichenketten werden hier in einem hellen Blau dargestellt.

Kommentare

'(font-lock-comment-face
  ((t (:foreground "#d0d0d0"))))

Mit font-lock-comment-face werden Kommentare formatiert:

# Dieser Kommentar ist gut lesbar

Die hellgraue Farbe sorgt dafür, dass Kommentare auf einem dunklen Hintergrund nicht zu schwach erscheinen.

Funktionsnamen

'(font-lock-function-name-face
  ((t (:foreground "#ffaf5f"
                   :weight bold))))

Dieses Face betrifft die Namen von Funktionen, zum Beispiel:

meine_funktion() {
    echo "Test"
}

Die Funktionsnamen erscheinen hellorange. Durch :weight bold werden sie zusätzlich fett dargestellt.

Variablen

'(font-lock-variable-name-face
  ((t (:foreground "#5fd7d7"))))

Mit font-lock-variable-name-face wird die Darstellung von Variablennamen angepasst:

dateiname="bericht.txt"
echo "$dateiname"

Die Variablen werden in einem hellen Türkis angezeigt.

Änderungen aktivieren

Nachdem die Konfiguration gespeichert wurde, kann sie ohne Neustart von Emacs geladen werden:

  1. Die Konfigurationsdatei in Emacs öffnen.
  2. M-x eval-buffer ausführen.
  3. Ein geöffnetes Bash-Skript gegebenenfalls schließen und erneut öffnen.

Alternativ kann Emacs einfach neu gestartet werden.

Die verwendeten Farben sind als Hexadezimalwerte angegeben. Sie können leicht angepasst werden, beispielsweise durch Ersetzen von #87d7ff oder #5fd7d7 durch einen anderen Farbwert.