Empfehlung des Hauses: EMACS

Der EMACS (EMACS) bietet auch beim Schreiben von makefiles ganz nette Gimmicks, die einem das Leben leichter machen.

Ein Problem in den meisten Editoren ist die Frage, ob an einer Stelle, an der man nichts sieht, wirklich nichts steht, oder ob da Leerzeichen oder Tabulatorzeichen stehen. In einem makefile ist das durchaus wichtig.

Den EMACS kann man dazu überreden, nach wilden Regeln (die man weitestgehend abkupfern wird, aber auch selbst vorgeben kann) den Quelltext bunt einzufärben.

Dazu ein Beispiel (einzufügen in die Konfigurationsdatei .emacs im Homeverzeichnis):

;...
(defun kw-ergaenzungen-zu-makefile-mode()
  ( font-lock-mode 1 )
  ; ggf. noch weitere Kommandos, die man beim Wechsel in den
  ; 'makefile-mode' ausgeführt haben möchte, z.B.:
  ; ( setq case-fold-search nil )  ; unterscheidet beim Suchen groß/klein
  ; ( setq abbrev-mode t )         ; Abkürzungen werden expandiert
  )

; Die eben definierte Funktion kw-ergaenzungen-zu-makefile-mode soll
; immer beim Wechsel in den 'makefile-mode' ausgeführt werden (für
; den aktuellen buffer):
(add-hook 'makefile-mode-hook 'kw-ergaenzungen-zu-makefile-mode )


; und zwar möchte ich alle Tabs in einem dreckigen Braun ("Khaki")
; und alle Leerzeichen und Tabs am Zeilenende in einem
; leuchtenden Gelb ("Gold"); dazu ist der font-lock-mode nötig:
(custom-set-faces
 '(my-tab-face            ((((class color)) (:background "Khaki"))) t)
 '(my-trailing-space-face ((((class color)) (:background "Gold"))) t))
(add-hook 'font-lock-mode-hook
          (function
           (lambda ()
             (setq font-lock-keywords
                   (append font-lock-keywords
                           '(("\t+" (0 'my-tab-face t))
                             ("[ \t]+$" (0 'my-trailing-space-face t))))))))

Wenn man damit dann ein makefile öffnet, sieht das etwa aus wie in Bild 2.2.

Abbildung 2.2: Beispielfenster makefile im EMACS
\includegraphics[width=\textwidth]{emacs_makefile_leerzeichen_beschriftet.ps}

Hier sieht man schön daß vor den Kommandos Tabulatoren stehen (wie es auch sein soll), aber am Ende einer fortgesetzten Zeile nach dem back slash (\) versehentlich ein Leerzeichen zuviel eingefügt wurde.

AnyWare@Wachtler.de