Emacs und "German Umlauts"

Emacs und "German Umlauts"

Obwohl der Emacs ein genialer Editor ist, sind manche Dinge einfach nur nervtötend. Zum einen ist es praktisch, dass er für viele Dinge andere Tools bemüht, anstatt die Funktion selber einzubauen. Zum anderen ist es gerade beim "On-the-Fly-Spellchecking" sehr fehleranfällig. Das liegt unter anderem daran, dass die Sonderzeichen jenseits von ASCII in der Datei (irgendwie) codiert sind. Für den Aufruf des Spellcheckers müssen sie durch eine Pipe geschoben werden und dafür (irgendwie) codiert werden und das Wörterbuch des Checkers ist wiederum (irgendwie) codiert gespeichert. (Anscheinend sind sich die Schritte nicht klar von welcher Codierung zu welcher Codierung konvertiert werden muss.)

Für den Emacs gibt es neben ispell noch aspell, welches das modernere Programm ist. Eigentlich kann man die beiden Programme gegeneinander austauschen (zumindest, wenn man nur ASCII benutzt). Dummerweise funktioniert die Rechtschreibprüfung mittels flyspell und aspell nicht mehr, sobald das zu kontrollierende Wort Umlaute enthält. Die Dateien in Iso-8859-15 zu bearbeiten kommt nicht in Frage und das habe ich nicht getestet.

Das Internet ist voll von Problemmeldungen (einfach mal nach flyspell umlauts usw. suchen). Ich kann nicht sagen, ob es an meiner Distribution liegt (Ubuntu Dapper), welche einen unglaublichen Aufwand betreibt, um das Problem in den Griff zu bekommen (locate dictionaries-common| grep .el liefert einige Dateien).

Meiner Meinung nach liegt die Ursache des Problems in der Variable ispell-dictionary-alist und der Reihenfolge, wann diese gesetzt wird. (ispell, flyspell, die Skripte der Distribution und in der .emacs-Datei)

Eine Lösung besteht nun darin die Variable ispell-local-dictionary-alist zu setzen. Ich führe am Anfang meiner .emacs Datei die folgenden Zeilen aus:

(setq ispell-program-name "aspell") 

;; alist leeren und für aspell /de_DE.UTF-8 richtig eingestellen: 
(setq ispell-local-dictionary-alist nil) 
(add-to-list 'ispell-local-dictionary-alist 
	     '("deutsch8" 
 	       "[[:alpha:]]" "[^[:alpha:]]"
	       "[']" t
	       ("-C" "-d" "deutsch")
 	        "~latin1" iso-8859-1)
 	     )

(setq ispell-dictionary "deutsch8")
(setq ispell-local-dictionary "deutsch8")
(setq ispell-default-dictionary "deutsch8")
(setq flyspell-default-dictionary "deutsch8") 

(defun turn-on-flyspell-mode () 
   (flyspell-mode 1)
) 
    

Damit kann mein Emacs unter Ubuntu Dapper Drake mittels aspell und flyspell Dateien "On-The-Fly" prüfen. Die Locale der Distribution ist auf "de_DE.UTF-8" eingestellt. Die Dateien sind ebenfalls in dieser Codierung gespeichert.

Was bei mir nicht geklappt hat

Weitere Links


nach oben

Letzte Änderung: 03.11.2008
© Lars Fischer

Valid XHTML 1.1!  Valid CSS!