Natuerlich kann man davon ausgehen dass jede halbwegs komplexe Software irgendwelche grösseren oder kleineren Fehler enthält. Dass ich aber innerhalb einer Woche gleich über zwei — ich nenne sie mal Ungereimtheiten — stolpere hätte ich nicht erwartet. Zumindest nicht in altehrwürdigen Programmen wie dem allseits beliebten
Editor Vim und dem Mail-Client Mutt.
Der Reihe nach, erstmal der Vim: Mir hat die Tagline sehr gut gefallen, die Frank Terbeck sich gebaut hat. Bis vor einer Woche habe ich mich noch nicht um Tabs im Vim bemüht, mit der FTTablineSet() von Frank wird das alles aber schön übersichtlich. Klappt auch prächtig… im Vim7. Ich habe aber auch noch Rechner mit Debian Woody im Einsatz, da ist noch ein Vim6 drauf. Der kannte noch keine Tabs, da kann das also nichts bringen. Also wie einige andere Funktionen nach der Versionsnummer ausklammern, aber das klappt in diesem Fall nicht.
Ich habe das Problem mal etwas eingedampft. Sobald ich eine Funktion mit einer For-Schleife in der Konfiguration habe kriege ich einen Fehler. Minimal sieht das so aus:
if version >= 700
function FunctionTest()
for tabnum in 1
endfor
return 1
endfunction
endif
Das führt im Vim6 beim Start des Editors zu folgender Ausgabe:
E133: :return außerhalb einer Funktion
Drücken Sie die EINGABETASTE oder geben Sie einen Befehl ein
Täusche ich mich, oder sollte der Vim6 den Teil überhaupt nicht ’sehen‘? Naja, ich denke nicht dass es dafür noch einen Patch gibt der mir auf Woody weiterhelfen wird. Erstmal habe ich mir so beholfen, das funktioniert:
" Zusaetzliche Funktionen fuer Vim ab 7.0.0
if version >= 700
source ~/.vim/features700.vim
endif
Und als ich Gestern nochmal eine Mail ansehen wollte die ich zu dem Thema geschrieben habe ist mir was merkwürdiges im Mutt aufgefallen. Ich persönlich bin nicht abgeneigt, das einen Fehler zu nennen, aber die FAQ sagt dass das so gewollt ist. Ich frage mich nur ob und wenn ja wie ich das elegant lösen kann.
Ich möchte Kopien meiner ausgehenden Mails monatlich sortiert in Ordnern ablegen. Das macht Sinn, und die Ordnerstruktur passt dann auch schön wenn ich mal mit Squirrelmail darauf zugreife. Also steht in der Konfiguration folgendes:
set record="=INBOX.Sent.date +%Y.%m
"
Mein Mutt läuft dauerhaft in einem Screen, wird also in der Regel nur neu gestartet wenn der Rechner neu gestartet wird, was in diesem Fall nur alle paar Monate mal vorkommt — in der Regel nach Stromausfällen. Und die Backticks werden offenbar nur beim Start evaluiert, so dass ausgehende Mails immer im Ordner des Monats landen in dem das Programm gestartet wurde. In der FAQ bei Fefe steht auf die Frage ob das irgendwie mit Bordmitteln geht „No. And that’s on purpose.“ Ich frage mich ob das so immer noch aktuell ist, ich finde das etwas… befremdlich in einem Programm das ansonsten so fein einstellbar ist.
Und eine Cron-Loesung wäre zwar denkbar, aber nicht schön. Wie würde das aussehen? Die Mail-Ordner direkt auf dem Server umverschieben? Geht. Aber auch nur weil ich da Root bin. Ist also nicht allgemein möglich. Und wenn Mutt immer nur nach „Sent“ schreibt, ein Skript sich am Monatsersten per IMAP mit dem Server verbindet und die Ordner umbenennt? Ginge auch, das wäre dann aber nicht mehr kompatibel zur Squirrel-Ordnerstruktur…