Mutt, VIM und UTF-8

Die meisten Mutt-Benutzer haben scheinbar noch immer ISO-8859-1 mittels der Umgebungsvariablen de_DE@euro in Benutzung oder müssen kaputten Umlaute in E-Mails hinnehmen oder bei ihren E-Mails vielleicht sogar ganz ohne Umlaute arbeiten. Der Wechsel von ISO-8859-1 auf UTF-8 ist weder kompliziert noch schwer und ausgehende E-Mails können weiterhin das Format US-ASCII bzw. ISO-8859-1 haben.

Es bedarf einiger weniger Kniffe, damit mutt und vim in Zukunft problemlos mit UTF-8 zusammenarbeiten. Daher sollten Sie als allererstes prüfen, ob Sie eine Umgebungsvariable auf der Konsole haben, die UTF-8 unterstützt:

robert@tux:~ > locale
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

robert@tux:~ >

Genauso müssen Umlaute problemlos eingegeben und angezeigt werden können, damit es später keinerlei Probleme gibt:

robert@tux:~ > echo "ÄÖÜäöüß"
ÄÖÜäöüß
robert@tux:~ >

Nun muss Mutt mit dem neuen Zeichensatz vertraut gemacht werden: Dazu sollte man die nachfolgenden Einstellungen in der ~/.mutt/muttrc setzen; ersteres sorgt dafür, dass UTF-8 generell verwendet wird. Die zweite Option sorgt dafür, dass ausgehende E-Mails im kleinstmöglichen Zeichensatz verschickt werden. So werden E-Mails mit Umlauten normalerweise als ISO-8859-15 verschickt, sofern die Umlaute in diesem Zeichensatz vorhanden sind - was bei gängigen deutschen Umlauten sowieso immer der Fall sein sollte. Die letzte Option sorgt dafür, dass die einleitende Antwortfloskel (auch Attribution genannt) weiterhin in englisch ist, auch wenn die Umgebungsvariable auf einer deutschsprachigen Einstellung steht.

# Welcher Zeichensatz soll verwendet werden?
set charset="utf-8"

# Zeichensatz für ausgehende E-Mails
set send_charset="us-ascii:iso-8859-1:iso-8859-15:utf-8"

# locale-Einstellungen
set locale="C"

Für weitere Einstellungen in der Mutt-Konfiguration möchte ich jedoch auf die Mutt-FAQ zu Charsets verweisen, welche darauf wesentlich genauer eingeht. Nun ist noch ganz wichtig, dass auch der VIM mit dem richtigen Zeichensatz arbeitet. Von Haus aus wechselt der VIM gerne zwischen den Zeichensätzen oder konvertiert Zeichensätze bei der Anzeige von Umlauten. Diese Probleme lassen sich mit nachfolgender Konfigurationsdatei für VIM ausschalten. Wenn noch keine VIM-Konfigurationsdatei für Mutt vorhanden ist, sollte man diese z.B. als ~/.mutt/vimrc.mutt anlegen:

" Disable charset auto-sensing/-detection
set fileencodings=

" Auto-sensed charset of current buffer
set fileencoding=

Sofern nicht bereits vorhanden, muss die Option editor in der Konfigurationsdatei ~/.mutt/muttrc noch eingefügt bzw. dafür angepasst werden - andernfalls wird diese VIM-spezifische Konfigurationsdatei nicht verwendet.

# Welcher Editor soll mit welchen Optionen aufgerufen werden?
set editor="vim -u ~/.mutt/vimrc.mutt"

Wenn eine Signatur verwendet wird, die Umlaute enthält, also beispielsweise bei "Mit freundlichen Grüßen", dann muss diese unbedingt ebenfalls auch in UTF-8 umgewandelt werden, damit es zu keinen Problemen kommt:

robert@tux:~ > mv -f .signature .signature.orig
robert@tux:~ > iconv -f iso-8859-1 -t utf-8 .signature.orig -o .signature
robert@tux:~ >

Und wenn das Adressbuch in Mutt auch Umlaute enthält, müssen diese ebenfalls in UTF-8 umgewandelt werden. Hierfür können Sie wieder iconv aus dem oben bereits für die Signatur verwendeten Befehl verwenden...