Ich bearbeite meine Haskell-Quelldateien mit Vim und habe die Option 'textwidth' gesetzt, um Zeilen mit Überlänge automatisch zu umbrechen. Also meine ~/.vimrc wie folgt aussehen:Führe automatisch führende Bindestriche in Haskell weiter Kommentare zu Textumbruch mit Vim
set tw=78
Nun, wenn ich schreibe eine Linie, die länger als 78 Zeichen das letzte Wort automatisch in die nächste Zeile genommen wird. Dies ist sehr nützlich beim Schreiben von Kommentaren in Quelldateien. Das Schöne ist, dass innerhalb von Kommentaren die führenden Kommentarzeichen automatisch am Anfang jeder Zeile eingefügt werden, wenn die letzte Zeile zu lang war und automatisch umbrochen wurde. Aber das funktioniert nur für Kommentare im C-Stil, aber leider nicht für Haskell-führende Striche.
So zum Beispiel in einem JS-Datei
/**
* This is a very long comment which is longer than 78 chars, yeah really
* longer than 78 chars...
schön sowie
// This is a very long comment which is longer than 78 chars, yeah really
// longer than 78 chars...
es schön wäre also jetzt eingewickelt wird, wenn das gleiche in Haskell Kommentaren geschieht, wie
------------------------------------------------------------------------------
-- | This is a very long module description which is longer than 78 chars,
-- yeah really longer than 78 chars...
Weiß jemand ob und wie das möglich ist? Wo wird dieses Verhalten angegeben? Hat: set formatexpr oder: set formatoptions helfe mir da?
Vielen Dank im Voraus für Ihre Hilfe!
= < < Johannes
/edit: btw verwende ich vim 7.3.x
Das passiert automatisch für mich. Vielleicht möchten Sie überprüfen, was Ihre Optionen überschreiben könnte. Achten Sie darauf, das 'c' Flag in' 'formatoptions' zu haben, wie @daniel kullmann sagte. Der Mechanismus, den Vim zum Erkennen von Kommentaren verwendet, ist in Abschnitt 30 beschrieben.6 des Benutzerhandbuchs und auch unter dem Thema 'format-comments'. – sidyll
Danke für den RTFM Hinweis. :) Das hat meine Frage fast gelöst. Wie das [Handbuch] (http://vimdoc.sourceforge.net/htmldoc/change.html#format-comments) beschreibt, ist es möglich, benutzerdefinierte Kommentare zu setzen. Also habe ich das zu meiner haskell.vim Syntaxdatei hinzugefügt: 'set comments = s1: - \ \ |, m: -, e: -' Aber das scheint nur für C-Style-Kommentare zu arbeiten Vim ist so 'klug' und gibt am Anfang des 'e'- und' m'-Teils des Kommentars eine Leerstelle ein. Irgendeine Idee wo das konfiguriert werden kann? – JHannes
Vim erst kürzlich (innerhalb der letzten ein oder zwei Jahre) begann mit Syntaxdateien für Haskell zu versenden; vielleicht solltest du upgraden. –