2012-04-10 14 views
0

Ich benutze Git und Vim. Mein Freund benutzt Git und TextMate. Ich bin heute auf ein Problem gestoßen, bei dem ich eine Datei mit vim und git hinzugefügt habe. Er hat es in TextMate geändert. Ich zog dann seine Änderung. Ich fügte ein paar Zeilen hinzu, aber der coffeescript-Compiler (und vim-coffee-script) warf einen Anfall, weil sie meine Zeilenumbrüche nicht erkennen konnten. Also lief ich: setze ff und es zeigt jetzt mac, wo es früher Unix zeigte.Vim, TextMate, git und Zeilenumbrüche

Warum erkennt coffeescript die Zeilenumbrüche nicht? Und wie kann ich verhindern, dass dies in Zukunft geschieht, entweder mit meinen git oder vim configs?

Meine vim config:

set ffs=unix,mac,dos 

Weder unserer git configs alles tun, mit core.autocrlf.

+0

Welchen Fehler erhalten Sie mit coffeescript? – Usagi

+0

Es hängt wirklich vom Code ab, aber wenn ich das erstellte JavaScript anschaue, verhält es sich so, als hätte ich keine Zeilenumbrüche und stimmt nicht mit dem JavaScript überein, das derselbe Code erzeugt, wenn ich es über die "Try Coffeescript" -Seite auf dem CoffeeScript Webseite. – Bradford

+3

OS X verwendet Unix-Zeilenendungen, es sei denn, Sie bearbeiten häufig Pre-OS X-Dateien, Sie benötigen kein "Mac" und Sie können ff manuell einstellen, wenn Sie dies benötigen. – ergosys

Antwort

0

Wenn Ihr Freund TextMate nicht für die Verwendung von Unix-Zeilenenden eingerichtet hat, sollte er das tun. Wenn Sie dann beide Zeilenenden verwenden, verwenden Sie dos2unix, um das gesamte Repo zu konvertieren.

Sie sollten auch sicherstellen, dass git crlf korrekt behandelt. Sehen Sie diese beiden Fragen: - Definitive recommendation for git autocrlf settings - Git 1.6.4 beta on Windows (msysgit) - Unix or DOS line termination

Sie auch -Modelines untersuchen möchten. Während diese für Zeilenenden nicht so nützlich sind, eignen sie sich hervorragend zum Einrücken. Vim unterstützt sie nativ und TextMate has a plugin, um Unterstützung für Emacs-Stil hinzuzufügen. (Und vim can support emacs-style auch - oder Sie können einfach beide verwenden.)