Der Mailreader Mutt: Konfiguration

Weiter Zurück Inhalt

## 3. Konfiguration

Die Standardkonfiguration ermöglicht es, Mutt sofort (``out-of-the-box'') zu benutzen. Dennoch ist es oft wünschenswert, Mutt an die eigenen Bedürfnisse anzupassen. Beim ersten Aufruf von Mutt versucht das Programm, die systemweite Konfigurationsdatei (Einstellungen, die durch deinen lokalen Systemadministrator vorgenommen wurden) zu lesen, es sei denn, es wurde die Kommandozeilen- Option ``-n'' angegeben. Diese Datei heißt üblicherweise `/usr/local/share/mutt/Muttrc` oder `/etc/Muttrc`. Als nächstes sucht Mutt in deinem Heimatverzeichnis nach einer Datei mit dem Namen `.muttrc`. Wenn diese Datei nicht existiert und es in deinem Heimatverzeichnis ein Unterverzeichnis mit dem Namen `.mutt` gibt, dann versucht Mutt eine Datei mit dem Namen `.mutt/muttrc` zu laden.

`.muttrc` ist die Datei, in der du normalerweise die Befehle einträgst, um Mutt zu konfigurieren.

Zusätzlich unterstützt Mutt versionsabhängige Konfigurationsdateien, die anstelle der oben genannten Standarddateien ausgewertet werden. Wenn es zum Beispiel auf deinem System eine Datei `Muttrc-0.88` im Verzeichnis für die systemweiten Konfigurationsdateien gibt und du Mutt in der Version 0.88 aufrufst, dann wird Mutt diese Datei anstelle der Datei `Muttrc` verwenden. Dasselbe gilt für die benutzerspezifische Konfigurationsdatei: Wenn du eine Datei `.muttrc-0.88.6` in deinem Heimatverzeichnis hast und Mutt-Version 0.88.6 benutzt, wird diese Datei anstelle der Standarddatei `.muttrc` eingelesen. Die Versionsnummer ist genau die, die angezeigt wird, wenn Mutt mit der ``-v'' Kommandozeilen- Option aufgerufen oder im Menü index die `show-version` Taste (Voreinstellung: V) benutzt wird.

## 3.1 Syntax der Konfigurationsdateien

Eine Konfigurationsdatei besteht aus einer Folge von Befehlen. Jede Zeile in der Datei darf einen oder mehrere Befehle enthalten. Wenn mehrere Befehle in einer Zeile angegeben werden, dann müssen sie durch ein Semikolon (;) voneinander getrennt werden.

> `

>     set realname='Mutt user' ; ignore x-

> `

Das ``Hash'' oder ``Lattenzaun'' (``#'') wird als Kommentarzeichen verwendet. Du kannst es benutzen, um Anmerkungen in deine Konfigurationsdatei zu schreiben. Mutt ignoriert alles, was in einer Zeile hinter diesem Kommentarzeichen steht. Ein Beispiel:

> `

>     my_hdr X-Disclaimer: Warum hörst du mir zu? # Dies ist ein Kommentar

> `

Mit einfachen (') und doppelten (") Anführungszeichen können Zeichenketten eingegeben werden, die Leer- oder Sonderzeichen enthalten. Der Unterschied zwischen den Anführungszeichen ist der gleiche wie in vielen populären Shell-Programmen: Das einfache Anführungszeichen dient dazu eine Zeichenkette festzulegen, in der keine Shellvariablen ersetzt oder mit dem ``Backslash'' (\) maskierte Zeichen interpretiert werden [vergleiche nächster Abschnitt], während dies bei Zeichenketten in doppelten Anführungszeichen geschieht. Zum Beispiel werden ``backtics'' (`) innerhalb doppelter Anführungszeichen ausgewertet, innerhalb von einfachen Anführungszeichen jedoch nicht.

\ maskiert das nächste Zeichen, genauso wie in Shells wie bash und zsh. Wenn du zum Beispiel doppelte Anführungszeichen ``"'' innerhalb einer Zeichenkette verwenden möchtest, dann kannst du ``\'' benutzen, um zu verhindern, daß das folgende Zeichen als Ende des Strings interpretiert wird.

> `

>     set realname="Michael \"MuttDude\" Elkins"

> `

Mit ``\\'' kann das Zeichen ``\'' in die Zeile eingefügt werden. ``\n'' und ``\r'' haben die in C üblichen Bedeutungen von Zeilenumbruch (linefeed) und Wagenrücklauf (carriage-return).

Ein \ am Ende einer Zeile dient dazu, Befehle auf mehrere Zeilen aufzuteilen. Dabei darf aber nicht in der Mitte von Befehlsnamen getrennt werden.

Desweiteren ist es möglich, die Ausgabe eines Unix-Befehls in die Konfigurationsdatei einzubinden. Dazu muss das entsprechende Kommando in ``backquotes'' (`) eingeschlossen werden. Zum Beispiel:

> `

>     my_hdr X-Operating-System: `uname -a`

> `

Die Ausgabe des Unix-Befehls ``uname -a'' wird eingefügt, bevor die Zeile ausgewertet wird. Zu beachten ist, daß die Konfigurationsdatei zeilenorientiert ist. Daher wird auch nur die erste Zeile der Ausgabe eines Unix-Befehls übernommen.

Auf UNIX Umgebungsvariablen kann genauso wie aus einer Shell wie sh oder bash zugegriffen werden, indem man vor den Namen der Variablen ein ``$'' setzt. Zum Beispiel:

> `

>     set record=+sent_on_$HOSTNAME

> `

In den folgenden Abschnitten werden die Befehle erklärt, die Mutt versteht. Eine vollständige Liste ist in der Befehlsreferenz enthalten.

## 3.2 Definieren und Benutzen von Aliasnamen

Benutzung: `alias` Schlüssel Adresse [ , Adresse, ... ]

Es ist für gewöhnlich etwas lästig, sich an die komplette Mailadresse eines Gesprächspartners zu erinnern oder sie komplett einzutippen. Mutt erlaubt es ``Aliasnamen'' zu erzeugen, die einen kurzen Schlüssel für eine komplette Mailadresse definieren.

Anmerkung: Wenn du einen Aliasnamen für eine Gruppe definierst (indem du mehr als eine Adresse angibst), dann müssen die einzelnen Adressen durch ein Komma (``,'') voneinander getrennt werden.

Entfernen eines oder mehrerer Aliasnamen (``*'' steht für alle):

`unalias` [ * | Schlüssel ... ]

> `

>     alias muttdude me@cs.hmc.edu (Michael Elkins)
>     alias theguys manny, moe, jack

> `

Im Gegensatz zu anderen Mailreadern ist es bei Mutt nicht notwendig, dass die Aliasnamen in einer besonderen Datei gespeichert werden. Der `alias` Befehl darf in irgend einer Konfigurationsdatei auftauchen, solange diese Datei nur eingelesen wird. Daher kann es bei Bedarf auch mehrere Alias-Dateien geben, oder es können alle Aliasnamen in der .muttrc definiert sein.

Auf der anderen Seite kann die create-alias Funktion nur eine einzige Datei benutzen, nämlich genau die, die durch die Variable $alias_file (die standardmäßig den Wert `~/.muttrc` hat) festgelegt wurde. Diese Datei ist ebenfalls nichts ``besonderes'' in dem Sinne, dass Mutt Aliasnamen an jede beliebige Datei anhängen kann. Damit sie wirksam werden, ist es aber erforderlich, auch diese Datei explizit einzulesen.

Zum Beispiel:

> `

>     source /usr/local/share/Mutt.aliases
>     source ~/.mail_aliases
>     set alias_file=~/.mail_aliases

> `

Die Benutzung der Aliasnamen erfolgt einfach dadurch, dass der Aliasname überall dort eingegeben werden kann, wo Mutt nach einer Adresse fragt, so zum Beispiel am To: oder Cc: Prompt. Wenn die Variable $edit_headers gesetzt ist, kannst Du die Aliasnamen auch mit deinem Editor in die entsprechenden Kopfzeilen eintragen.

Zusätzlich kannst du an den verschiedenen Stellen, wo nach einer Adresse gefragt wird, die TAB-Taste benutzen, um einen teilweise eingegebenen Aliasnamen zu vervollständigen. Wenn es mehrere Möglichkeiten gibt, geht Mutt in ein Menü, in dem (wie in einem Adressbuch) eine Liste aller passenden Aliasnamen angezeigt wird. Wenn du die komplette Liste aller Aliasnamen sehen möchtest, drückst du die TAB-Taste einfach ohne vorher etwas einzugeben, etwa am leeren Prompt oder nach einem Komma für mehrere Adressen.

Im Alias Menü kannst du mit der select-entry Taste (Voreinstellung: Return) so viele Aliasnamen auswählen, wie du möchtest. Mit der exit Taste (Voreinstellung: q) kehrst du zur Adresseingabe zurück.

## 3.3 Ändern der Standard Tastenbelegung

Benutzung: `bind` Menü Taste Funktion

Dieser Befehl erlaubt es, die voreingestellte Tastenbelegung (welche Funktion auf einen Tastendruck hin aufgerufen wird) zu ändern.

Menü legt fest, in welches Menü die Tastenbelegung gehört. Die momentan gültigen Werte sind:

- generic
- alias
- attach
- browser
- editor
- index
- compose
- pager
- pgp
- postpone

Taste ist die Taste (oder Tastenkombination), die du zuordnen möchtest. Um ein Kontrollzeichen anzugeben, wird die Sequenz \Cx verwendet, wobei x der Buchstabe für das Kontrollzeichen ist (``\Ca'' steht zum Beispiel für Control-A (bzw. Strg-A auf deutschen Tastaturen, A.d.Ü.)). Beachte, daß die Groß-/Kleinschreibung sowohl bei x alsauch bei \C ignoriert wird. Die Definitionen \CA, \Ca, \cA und \ca bedeuten daher alle das gleiche. Alternative ist es möglich, die Taste als 3-stellige Oktalzahl mit führendem ``\'' anzugeben (zum Beispiel ist \177 äquivalent zu \c?).

Desweiteren darf Taste folgende Strings enthalten:

> `

>     \t              Tab
>     <tab>           Tab
>     \r              Wagenrücklauf (carriage return)
>     \n              Zeilenvorschub (newline)
>     \e              Escape
>     <esc>           Escape
>     <up>            Cursor hoch
>     <down>          Cursor runter
>     <left>          Cursor links
>     <right>         Cursor rechts
>     <pageup>        Bild hoch
>     <pagedown>      Bild runter
>     <backspace>     Backspace
>     <delete>        Entf
>     <insert>        Einfg
>     <enter>         Enter
>     <return>        Return (Eingabetaste)
>     <home>          Pos1
>     <end>           Ende
>     <space>         Leertaste
>     <f1>            Funktionstaste F1
>     <f10>           Funktionstaste F10

> `

Taste muss nicht in Anführungszeichen eingeschlossen werden, außer wenn Leerzeichen (`` '') enthalten sind.

Funktion legt fest, welche Aktion ausgeführt wird, wenn die Taste gedrückt wird. Eine komplette Liste aller Funktionen ist in der Referenz aufgeführt. Die Sonderfunktion `noop` hebt die Definition einer Tastenbelegung auf.

## 3.4 Aliasnamen für Zeichensätze definieren

Benutzung: `charset-hook` Alias Zeichensatz
Benutzung: `iconv-hook` Zeichensatz lokaler Zeichensatz

Mit dem Befehl `charset-hook` kann man Alias-Namen für Zeichensätze definieren. Dies ist nützlich, um Nachrichten richtig anzuzeigen, in denen ein Zeichensatz deklariert wurde, den mutt nur unter anderem Namen kennt.

Der Befehl `iconv-hook` definiert einen system-spezifischen Namen für einen Zeichensatz. Das ist hilfreich, falls die Bibliothek zur Konvertierung von Zeichensätzen auf deinem System darauf besteht, Zeichensätze mit seltsamen, system-spezifischen Namen zu versehen.

## 3.5 Von einer Mailbox abhängig Variablen setzen

Benutzung: `folder-hook` [!]Muster Befehl

Oft ist es wünschenswert, Einstellungen in Abhängigkeit von der gerade benutzten Mailbox zu verändern. Der Befehl folder-hook bietet die Möglichkeit, einen beliebigen Konfigurationsbefehl auszuführen. Muster ist ein regulärer Ausdruck, der angibt, vor dem Öffnen welcher Mailboxen der Befehl ausgeführt werden soll. Wenn für eine Mailbox mehrere folder-hook's zutreffen, dann werden sie in der Reihenfolge ausgeführt, in der sie in der muttrc stehen.

Anmerkung: Wenn du am Anfang des Musters das Ausrufezeichen (``!'') als Abkürzung für die $Spooldatei verwendest, dann muss es in einfachen oder doppelten Anführungsstrichen stehen, damit es vom logischen Nicht Operator des Musters unterschieden werden kann.

Beachte, dass die alten Einstellungen nicht wieder hergestellt werden, wenn die Mailbox verlassen wird.

Als Beispiel ist ein möglicher Befehl, die Art der Sortierung der Nachrichten abhängig von der gelesenen Mailbox zu ändern:

> `

>     folder-hook mutt set sort=threads

> `

Die Art der Sortierung wird hierbei nicht auf den alten Wert zurückgesetzt, wenn eine andere Mailbox geladen wird. Mit dem Muster ``.'' kann ein Standard Befehl festgelegt werden.

> `

>     folder-hook . set sort=date-sent

> `

## 3.6 Tastatur Makros

Benutzung: `macro` Menü Taste Sequenz [ Beschreibung ]

Makros sind nützlich, wenn du möchtest, dass auf einen Tastendruck hin eine ganze Folge von Aktionen ausgeführt wird. Wenn du im Menü Menü die Taste Taste drückst, verhält sich Mutt so, als wenn du Sequenz eingegeben hättest. Wenn du also eine Folge von Befehlen hast, die du häufig hintereinander eingibst, dann kannst du ein Makro erzeugen, um diese Befehlsfolge mit einem Tastendruck auszuführen.

Prinzipiell sind Taste und Sequenz nach denselben Regeln aufgebaut wie die Tastenbelegungen. Allerdings gibt es ein paar Besonderheiten: Die erste ist, dass Kontrollzeichen innerhalb einer Sequenz auch als ^x geschrieben werden können. Um das Caret (``^'') selbst zu erzeugen, muss daher ^^ eingegeben werden. Zweitens kann man die Schreibweisen <Tastenname> und <Funktionsname> verwenden, um spezielle Tasten wie up (Cursor rauf) anzugeben oder Funktionen direkt aufzurufen. Eine Auflistung der Tastennamen ist im Abschnitt zu den Tastenbindungen enthalten. Die Funktionen sind in der Funktions-Referenz aufgeführt.

Der Vorteil bei direkter Verwendung der Funktionsnamen ist, dass die Makros nicht die gegenwärtigen Tastenbindungen verwenden und ihre Funktion auf diese Weise nicht davon abhängt, dass der Benutzer bestimmte Tasten-Definitionen hat. Dadurch werden sie robuster und portabler; es erleichtert auch die Definition von Makros in Dateien, die von mehr als einer Person genutzt werden (z.B. in der globalen Muttrc).

Optional kannst du nach der Sequenz eine Beschreibung angeben, die dann in den Hilfebildschirmen angezeigt wird.

Anmerkung: Makrodefinitionen (so vorhanden), die in den Hilfebildschirmen angezeigt werden, werden bei der Anzeige auf Bildschirmbreite abgeschnitten und nicht umgebrochen.

## 3.7 Verwendung von Farb- und Mono Video Attributen

Benutzung: `color` Objekt Vordergrund Hintergrund [ Muster ]
Benutzung: `color` index Vordergrund Hintergrund Muster
Benutzung: `uncolor` index Vordergrund Hintergrund [ Muster ]

Wenn dein Terminal farbfähig ist, kannst du Mutt durch ein selbst definiertes Farbschema verschönern. Um die Farbe für ein Objekt (eine bestimmte Art von Information) festzulegen, musst du eine Vordergrundfarbe und eine Hintergrundfarbe festlegen (es ist nicht möglich nur eins von beiden anzugeben).

Objekt darf eines der folgenden sein:

- attachment
- body (Übereinstimmung mit Muster im Rumpf der Nachrichten)
- bold (Hervorheben von Fettdruck im Rumpf der Nachrichten)
- error (Fehlermeldungen, die Mutt ausgibt)
- header (Übereinstimmung mit Muster in den Kopfzeilen der Nachrichten)
- hdrdefault (Standardfarbe für die Kopfzeilen im Pager)
- index (Übereinstimmung mit Muster im Index)
- indicator (Pfeil oder Balken zur Markierung des aktuellen Eintrags in einem Menü)
- markers (die ``+'' Markierungen am Anfang von umgebrochenen Zeilen im Pager)
- message (Informative Hinweistexte)
- normal
- quoted (Übereinstimmung mit $quote_regexp im Rumpf einer Nachricht)
- quoted1, quoted2, ..., quotedN (Höhere Zitatebenen)
- search (Markierung von Worten im Pager)
- signature
- status (Modi zur Anzeige von Informationen über die Mailbox oder Nachricht)
- tilde (die ``~'', die Leerzeilen im Pager auffüllt)
- tree (Thread-Baum, der im Nachrichtenindex und im Attachment Menü angezeigt wird)
- underline (Hervorheben von Unterstreichungen im Rumpf der Nachrichten)

Vordergrund und Hintergrund kann eine der folgenden Farben sein:

- white (weiß)
- black (schwarz)
- green (grün)
- magenta
- blue (blau)
- cyan
- yellow (gelb)
- red (rot)
- default
- colorx

Beim Vordergrund kann der jeweiligen Farbe das Schlüsselwort `bright` vorangestellt werden, um die Vordergrundfarbe fett gedruckt zu bekommen (zum Beispiel `brightred`).

Wenn es dein Terminal unterstützt, dann kann das besondere Schlüsselwort default als transparente Farbe benutzt werden. Der Wert brightdefault ist ebenfalls gültig. Wenn Mutt gegen die S-Lang Bibliothek gebunden wurde, dann musst du noch die Umgebungsvariable COLORFGBG auf die Standardfarben deines Terminals setzen, damit das funktioniert; zum Beispiel (für Bourne-artige Shells):

> `

>     set COLORFGBG="green;black"
>     export COLORFGBG

> `

Anmerkung: Die S-Lang Bibliothek verlangt, dass anstelle von white und yellow die Schlüsselworte lightgray und brown benutzt werden, wenn diese Variable gesetzt wird.

Anmerkung: Der uncolor Befehl kann nur auf das Objekt index angewendet werden. Es entfernt Einträge aus der Liste. Du musst dasselbe Muster wie beim entsprechenden color Befehl angeben, damit der Eintrag entfernt wird. Das Muster ``*'' ist ein besonderes Zeichen mit der Bedeutung, dass die komplette Liste gelöscht werden soll.

Mutt erkennt auch die Schlüsselworte color0, color1, ..., colorN-1 (wobei N die Anzahl der von deinem Terminal unterstützten Farben ist). Das ist nützlich, wenn du die Farben für deine Anzeige umdefinierst (zum Beispiel, indem du im xterm die Farbe änderst, die mit color2 verknüpft ist), weil dann die Farbnamen ihre normale Bedeutung verlieren.

Wenn dein Terminal keine Farben unterstützt, ist es mit dem ``mono'' Befehl dennoch möglich, Videoattribute zu verändern.

Benutzung: `mono` <Objekt> <Attribut> [ regulärer Ausdruck ]
Benutzung: `mono` index Attribut Muster
Benutzung: `unmono` index Muster [ Muster ... ]

wobei Attribut eines der folgenden ist:

- none (keins)
- bold (fett)
- underline (unterstrichen)
- reverse (invers)
- standout

## 3.8 Ignorieren (weeding) von nicht gewünschten Kopfzeilen

Benutzung: `[un]ignore` Muster [ Muster ... ]

Nachrichten haben oft viele Kopfzeilen, die automatisch eingefügt werden oder solche, bei denen es nicht sinnvoll erscheint, sie am Bildschirm anzuzeigen. Dieser Befehl erlaubt es, Kopfzeilen festzulegen, die du normalerweise nicht sehen willst.

Es ist dabei nicht nötig, den kompletten Namen des Headers anzugeben. Zum Beispiel ignoriert der Eintrag ``ignore content-'' alle Kopfzeilen, die mit ``content-'' anfangen.

Um ein zuvor eingetragenes Muster aus der Liste auszutragen, wird der ``unignore'' Befehl benutzt. ``unignore *'' entfernt alle Muster aus der ignore-Liste.

Zum Beispiel:

     # Sven's drakonische Auswahl von Kopfzeilen
     ignore *
     unignore from date subject to cc
     unignore organization organisation x-mailer: x-newsreader: x-mailing-list:
     unignore posted-to:

## 3.9 Mailinglisten

Benutzung: `[un]lists` Adresse [ Adresse ... ]
Benutzung: `[un]subscribe` Adresse [ Adresse ... ]

Mutt verfügt über einige schöne Funktionen zur Behandlung von Mailinglisten. Um von diesen Funktionen zu profitieren, musst du angeben, welche Adressen die Mailinglisten haben und welche davon du gerade abonniert hast. Sobald du das getan hast, wird der Befehl list-reply für alle bekannten Listen funktionieren.

Zusätzlich wird mutt in Nachrichten an abonnierte Listen einen Mail-Followup-To Header setzen, um die Mailprogramme anderer darauf hinzuweisen, dass du keine Kopien ihrer Antworten an deine Privatadresse wünschst. Beachte bitte, dass der Mail-Followup-To Header eine noch nicht standardisierte Erweiterung ist, die nicht von allen Programmen unterstützt wird. Ihn einer Nachricht hinzuzufügen schließt nicht mit völliger Sicherheit aus, dass du trotzdem persönliche Kopien von Listen-Nachrichten bekommst. Beachte auch, dass die Erzeugung des Mail-Followup-To Headers von der Variablen followup_to gesteuert wird.

Um genauer zu sein, verwaltet mutt Listen der ihm bekannten und der abonnierten Mailinglisten. Jede abonnierte Mailingliste zählt dabei automatisch als ``bekannt''. Um eine Mailingliste als bekannt zu markieren, steht der Befehl ``lists'' zur Verfügung. Um sie als abonniert zu kennzeichnen, verwendet man ``subscribe''.

Du solltest nur so viel von der Adresse angeben, wie nötig ist, um Mehrdeutigkeiten zu vermeiden. Wenn du zum Beispiel die Mailing-Liste von mutt abonniert hast, erhältst du an mutt-users@mutt.org adressierte Mail. Um mutt mitzuteilen, dass es sich dabei um eine Mailingliste handelt, kannst Du ``lists mutt-users'' in deine .muttrc schreiben; um mutt beizubringen, dass du diese Liste abonniert hast, würdest du statt dessen den Befehl ``subscribe mutt-users'' verwenden. Wenn du zufälligerweise auch Mail von jemandem mit der Adresse mutt-users@example.com bekommst, würdest du ``lists mutt-users@mutt.org'' bzw. ``subscribe mutt-users@mutt.org'' verwenden, um nur Mail zu erfassen, die tatsächlich von der Liste stammt.

Der Befehl ``unlists'' wird verwendet, um einen Eintrag aus den Listen der bekannten und abonnierten Mailing-Listen zu entfernen. Mit ``unlists *'' lassen sich die Listen auch vollständig leeren.

Um einen Eintrag zwar aus der Liste der abonnierten Mailinglisten zu entfernen, ihn aber in der Liste der bekannten Mailinglisten zu belassen, existiert der Befehl ``unsubscribe''.

## 3.10 Mehrere Spool-Mailboxen verwenden

Benutzung: `mbox-hook` [!]Muster Mailbox

Dieser Befehl wird verwendet, um gelesene Nachrichten automatisch aus den sogenannten ``Spool-Mailboxen'' (die nicht zur Archivierung von Mail bestimmt sind) in eine andere zu verschieben, wenn du mutt verlässt oder in eine andere Mailbox wechselst.

Muster ist ein regulärer Ausdruck, der angibt, welche Mailbox als Spool-Mailbox angesehen werden soll. Mailbox gibt an, in welcher Mailbox die Nachrichten daraus gespeichert werden sollen, wenn sie gelesen wurden.

Anders als bei anderen hook Befehlen wird hier nur der erste Eintrag benutzt, auf den das Muster zutrifft (es ist nicht möglich, gelesene Mail in mehr als einer Mailbox zu speichern).

## 3.11 Mailboxen angeben, die Nachrichten empfangen

Benutzung: `mailboxes` [!]Dateiname [ Dateiname ... ]

Mit diesem Befehl werden die Mailboxen definiert, in denen das System empfangene Nachrichten ablegt und die deshalb auf neue Nachrichten überprüft werden sollen. Standardmäßig wird in der Hauptstatuszeile angezeigt, wie viele dieser Mailboxen neue Nachrichten enthalten.

Beim Wechsel der Mailbox kann man mit der Leertaste durch die Mailboxen blättern, die neue Nachrichten enthalten.

Wenn man in einer Datei-Liste die Tabulator-Taste drückt, erscheint ein Menü, in dem die Dateien aufgeführt sind, die mit dem `mailboxes` Befehl angegeben wurden und in dem angezeigt wird, welche davon neue Nachrichten enthalten. Mutt startet automatisch in diesem Modus, wenn es von der Kommandozeile aus mit der Option `-y` aufgerufen wurde.

Anmerkung: Neue Mail wird erkannt, indem für die Mailbox-Datei das letzte Zugriffsdatum mit dem Datum der letzten Änderung verglichen wird. Hilfsprogramme wie `biff`, `frm` und andere, die auf die Mailbox zugreifen, können (wenn sie die Zugriffszeit nicht zurücksetzen) daher dafür verantwortlich sein, dass Mutt nie neue Mail meldet. Eine weitere Ursache für geänderte Zugriffszeiten sind Backup-Programme.

Anmerkung: Die Dateinamen im Befehl `mailboxes` werden bereits aufgelöst, wenn der Befehl ausgeführt wird. Wenn diese Namen also Kürzel (wie etwa ``='' and ``!'') enthalten, dann sollte jede Variablendefinition, die auf die Bedeutung dieser Zeichen Einfluss hat (etwa $folder und $spoolfile) vor dem Befehl `mailboxes` stehen.

## 3.12 Benutzerdefinierte Kopfzeilen

Benutzung:
`my_hdr` Zeichenkette
`unmy_hdr` Feld [ Feld ... ]

Der Befehl ``my_hdr'' erlaubt es eigene Kopfzeilen zu definieren, die in jede Nachricht, die man verschickt, eingefügt werden.

Wenn du zum Beispiel eine ``Organization:'' Zeile in jede ausgehende Nachricht einfügen möchtest, dann kannst du dafür den Befehl

     my_hdr Organization: Eine Wirklich Große Firma, Irgendwo, Deutschland

in deine `.muttrc` aufnehmen.

Anmerkung: Leerzeichen zwischen dem Schlüsselwort und dem Doppelpunkt (``:'') sind nicht erlaubt. Der Standard für E-Mail (RFC822) untersagt Leerzeichen an dieser Stelle, daher erzwingt Mutt die Einhaltung dieser Regel.

Wenn du eine Kopfzeile nur in eine einzelne Nachricht einfügen möchtest, dann kannst du entweder die Variable edit_headers setzen, oder du verwendest die Funktion edit-headers (in der Voreinstellung: ``E'') im Nachricht erstellen Menü, um die Kopfzeilen zusammen mit der Nachricht editieren zu können.

Zum Entfernen von benutzerdefinierten Kopfzeilen dient der Befehl ``unmy_hdr''. Du kannst dabei entweder einen Stern (``*'') angeben, um alle Kopfzeilen zu entfernen, oder den Namen der zu löschenden Zeile. Um zum Beispiel alle ``To'' und ``Cc'' Kopfzeilen zu entfernen, kannst Du folgendes angeben:

> unmy_hdr to cc

## 3.13 Sortierung der Kopfzeilen in der Nachrichtenanzeige festlegen

Benutzung: `hdr_order` Kopfzeile1 Kopfzeile2 Kopfzeile3

Mit diesem Befehl wird die Reihenfolge festgelegt, in der die Kopfzeilen ausgegeben werden sollen, wenn eine Nachricht angezeigt wird.

``unhdr_order *'' entfernt alle zuvor definierten Kopfzeilen aus der Sortierreihenfolge und schaltet somit die in der systemweiten Konfigurationsdatei definierte Sortierung ab.

> `

>     hdr_order From Date: From: To: Cc: Subject:

> `

## 3.14 Standard-Datei zum Speichern festlegen

Benutzung: `save-hook` [!]Muster Dateiname

Mit diesem Befehl wird die Standard-Datei geändert, in der Nachrichten gespeichert werden. Die Datei Dateiname wird als Standard-Datei benutzt, wenn im From: Header der Nachricht eine Adresse steht, die auf das Muster passt, oder wenn du die Nachricht geschrieben hast und die Adresse im To: auf das Muster passt.

Im Kapitel Auswählen von Nachrichten können Informationen über das genaue Format von Muster nachgelesen werden.

Beispiele:

> `

>     save-hook me@(turing\\.)?cs\\.hmc\\.edu$ +elkins
>     save-hook aol\\.com$ +spam

> `

Siehe auch den Befehl fcc-save-hook.

## 3.15 Standard Fcc: Mailbox beim Verfassen festlegen

Benutzung: `fcc-hook` [!]Muster Mailbox

Mit diesem Befehl können Kopien gesendeter Nachrichten in einer anderen Mailbox als $record gespeichert werden. Mutt sucht in der Liste der Empfänger nach der ersten Übereinstimmung mit Muster und benutzt dann die Mailbox als Voreinstellung für die Fcc: Mailbox. Wenn keine Übereinstimmung gefunden wurde, dann wird die Nachricht in der Mailbox gespeichert, die in $record angegeben ist.

Im Kapitel Auswählen von Nachrichten können Informationen über das genaue Format von Muster nachgelesen werden.

Beispiel: `fcc-hook aol.com$ +spammers`

Das obige speichert eine Kopie von allen Nachrichten, die an die Domain aol.com gesendet werden, in der Mailbox `+spammers'. Siehe auch den Befehl fcc-save-hook.

## 3.16 Standard-Dateiname zum Speichern und Fcc: Mailbox zusammen festlegen

Benutzung: `fcc-save-hook` [!]Muster Mailbox

Dieser Befehl ist lediglich eine Abkürzung, er ist äquivalent zur gleichzeitigen Ausführung der beiden Befehle fcc-hook und save-hook mit den angegebenen Argumenten.

## 3.17 Einstellungen abhängig vom Empfänger ändern

Benutzung: `send-hook` [!]Muster Befehl

Mit diesem Befehl können beliebige Konfigurationsbefehle in Abhängigkeit vom Empfänger der Nachricht ausgeführt werden. Muster ist ein regulärer Ausdruck für die gewünschte Empfängeradresse. Befehl wird ausgeführt, wenn Muster auf einen der Empfänger der Nachricht zutrifft. Wenn es mehrere Übereinstimmungen gibt, dann werden sie in der Reihenfolge ausgeführt, in der sie in der .muttrc stehen.

Im Kapitel Auswählen von Nachrichten kannst du Informationen über das genaue Format von Muster nachlesen.

Beispiel: `send-hook mutt "set mime_forward signature=''"`

Eine andere typische Anwendung für diesen Befehl ist das Ändern der Werte der $attribution, $signature und $locale Variablen, um die Sprache der Anrede und Signatur abhängig vom Empfänger zu setzen.

Anmerkung: Die send-hooks werden nur EINMAL ausgeführt, nachdem die ursprüngliche Liste der Empfänger eingelesen wurde. Wenn man einen Empfänger hinzufügt, während die Nachricht editiert wird, dann führt das NICHT dazu, dass irgendein send-hook ausgeführt wird. Ebenso haben my_hdr Befehle, die Empfänger- oder Betreffzeilen in den Headern ändern, keinen Einfluss auf die vorliegende Nachricht, wenn sie in einem send-hook aufgerufen werden.

## 3.18 Verändere Einstellungen, bevor eine Nachricht formatiert wird

Benutzung: `message-hook` [!]Muster Befehl

Dieser Befehl kann verwendet werden, um in Abhängigkeit verschiedener Informationen über eine Nachricht beliebige Konfigurations-Befehle auszuführen, bevor sie angezeigt oder formatiert wird. Der Befehl wird ausgeführt, wenn das Muster auf die anzuzeigende Nachricht passt. Bei mehreren Übereinstimmungen werden die Befehle in der Reihenfolge ausgeführt, in der sie in der muttrc angegeben wurden.

Informationen zum genauen Format des Musters sind im Abschnitt Suchmuster für Nachrichten in Hooks enthalten.

Beispiel:

> `

>     message-hook ~A 'set pager=builtin'
>     message-hook '~f freshmeat-news' 'set pager="less \"+/^  subject: .*\""'

> `

## 3.19 Auswahl des PGP Schlüssels für einen Empfänger

Benutzung: `pgp-hook` Muster keyid

Wenn eine Nachricht mit PGP verschlüsselt werden soll, dann kann es wünschenswert sein, einen bestimmten PGP Schlüssel mit einem Empfänger zu verknüpfen. Das ist zum Beispiel sinnvoll, wenn der Schlüssel nicht direkt aus der Empfängeradresse ermittelt werden kann oder wenn man einen anderen Schlüssel verwenden möchte als den, den mutt normalerweise auswählen würde. Der pgp-hook Befehl bietet die Möglichkeit, die Benutzer-ID des öffentlichen Schlüssels anzugeben, der für die Verschlüsselung von Mails an einen bestimmten Empfänger benutzt werden soll.

## 3.20 Befehlssequenzen in den Tastaturpuffer schreiben

Benutzung: `push` Befehlssequenz

Dieser Befehl fügt die angegebene Befehlssequenz in den Tastaturpuffer ein. Sie kann genau wie die Sequenz im Befehl macro Kontrollzeichen enthalten, Tastennamen und Funktionsnamen. Der Befehl kann benutzt werden, um beim Start von Mutt oder beim Betreten einer neuen Mailbox eine bestimmte Folge von Befehlen auszuführen.

## 3.21 Ausführen von Funktionen

Benutzung: `exec` Funktion [ Funktion ... ]

Dieser Befehl kann verwendet werden, um eine beliebige Funktion auszuführen. Die Funktionen sind in der Funktions-Referenz aufgeführt. ``exec Funktion'' ist gleichbedeutend mit ``push <Funktion>''.

## 3.22 Nachrichten bewerten (Scoring)

Benutzung: `score` Muster Wert
Benutzung: `unscore` Muster [ Muster ... ]

Wenn das Muster auf eine Nachricht passt, addiert der Befehl `score` den angegebenen Wert zu ihrer Punktzahl (Score). Muster ist eine Zeichenkette, deren Format im Abschnitt Suchmuster beschrieben wird (Hinweis: Aus Gründen der Effizienz können Muster, die Informationen benötigen, die im Index nicht verfügbar sind - etwa `~b`, `~B` oder `~h` - nicht verwendet werden). Wert ist eine positive oder negative ganze Zahl. Die endgültige Punktzahl einer Nachricht ist die Gesamtsumme aus allen passenden `score` Einträgen. Es ist allerdings möglich, dem Wert ein Gleichheitszeichen (``='') voranzustellen, um die Berechnung des Score an dieser Stelle zu stoppen, wenn eine Übereinstimmung vorliegt. Ein negatives Endergebnis wird auf 0 aufgerundet.

Der Befehl `unscore` entfernt Score-Einträge aus der Liste. Du musst dasselbe Muster wie beim entsprechenden `score` Befehl angeben, damit der Eintrag entfernt wird. Das Muster ``*'' ist ein besonderes Zeichen mit der Bedeutung, dass die komplette Liste der Score-Einträge gelöscht werden soll.

## 3.23 Der Umgang mit Konfigurations-Variablen

Benutzung: `set` [no|inv]Variable[=Wert] [ Variable ... ]
Benutzung: `toggle` Variable [Variable ... ]
Benutzung: `unset` Variable [Variable ... ]
Benutzung: `reset` Variable [Variable ... ]

Dieses Kommando dient dem Setzen (set) und Entfernen (unset) von Variablen. Es gibt vier grundlegende Typen von Variablen: boolean (Wahrheitswert), number (positive Ganzzahl), string (Zeichenkette) und Quad-Option. boolean-Variablen können mit set auf wahr (true) und mit unset auf unwahr (false) geschaltet werden. number-Variablen können positive ganzzahlige Werte aufnehmen.

string-Variablen bestehen aus einer beliebigen Anzahl von druckbaren Zeichen. Sie müssen von Anführungszeichen umschlossen werden, wenn Leerzeichen oder Tabulatoren enthalten sind. Die Escape-Sequenzen \n für den Zeilenvorschub und \t für den Tabulator können wie in der Programmiersprache ``C'' benutzt werden.

quadoption-Variablen legen fest, ob Mutt bei einer bestimmten Aktion den Benutzer fragen oder eine Standard-Aktion ausführen soll. Der Wert yes sorgt für eine sofortige Ausführung der Aktion, genau so, als wenn der Benutzer auf die vom Programm gestellte Frage mit ``ja'' geantwortet hätte. no funktioniert ähnlich, nur dass die Aktion so ausgeführt wird, als wenn der Benutzer mit ``nein'' geantwortet hätte. Der Wert ask-yes führt zu einer Benutzerabfrage, wobei die voreingestelle Antwort ``ja'' ist, die nur noch mit Return bestätigt werden muss. Bei ask-no ist die voreingestellte Antwort ``nein''.

Eine Variable mit vorangestelltem ``no'' schaltet die betreffende Option ab. Beispiel: `set noaskbcc`.

boolean-Variablen kann `inv` vorangestellt werden, um den Wert auf den jeweils anderen Zustand umzuschalten. Das ist besonders beim Schreiben von Makros sinnvoll. Beispiel: `set invsmart_wrap`.

Das `toggle`-Kommando setzt automatisch `inv` vor die angegebenen Variablennamen.

Das `unset`-Kommando setzt automatisch `no` vor die angegebenen Variablennamen.

Mit der enter-command-Funktion aus dem Menü index kann der Wert einer Variable abgefragt werden. Dazu muss dem Variablennamen ein Fragezeichen vorangestellt werden:

> `

>     set ?allow_8bit

> `

Benötigt wird das Fragezeichen nur bei Variablen der Typen boolean und Quad-Option.

Das `reset`-Kommando setzt alle angegebenen Variablen auf die einkompilierten Standardwerte, die in diesem Handbuch aufgeführt sind. Das `set`-Kommando und ein ``&'' vor dem Variablennamen führen zum selben Ergebnis.

Für `reset` gibt es die spezielle Variable ``all'', die sämtliche Variablen auf Standardwerte zurücksetzt.

## 3.24 Lesen von Konfigurations-Kommandos aus einer anderen Datei

Benutzung: `source` dateiname

Mit diesem Kommando können Konfigurations-Kommandos aus anderen Dateien eingebunden werden. Ich speichere beispielsweise meine Alias-Namen (eine Art Adressbuch) in der Datei `~/.mail_aliases`. Auf diese Weise kann ich `~/.muttrc` für alle lesbar machen und gleichzeitig meine Alias-Namen privat halten.

Wenn der Dateiname mit einer Tilde (``~'') beginnt, wird er durch den Pfad des Home-Verzeichnisses ersetzt.

Wenn der Dateiname mit einem Balken (``|'') endet, interpretiert mutt diesen Dateinamen als ausführbares Programm und liest dessen Ausgabe ein. Beispiel: `source ~/bin/myscript|`

## 3.25 Entfernen von Hooks

Benutzung: `unhook` [ * | Hook-Art ]

Dieser Befehl ermöglicht es dir, Hooks wieder zu entfernen, die du vorher definiert hattest. Du kannst entweder alle Hooks entfernen, indem du das Zeichen ``*'' als Argument angibst, oder du kannst alle Hooks eines speziellen Typs entfernen, indem du etwas wie `unhook send-hook` verwendest.

Weiter Zurück Inhalt