2011-01-08 7 views
3

Ich benutze Vim und GIT, um mein Projekt auf einem Linux/Ubuntu-Rechner zu entwickeln. In der Vergangenheit verwendete ich Windows, was bedeutet, dass die Zeilenenden im DOS-Format waren. Jetzt, nachdem ich zu Linux gewechselt habe, sehe ich immer^M verwirrende/störende Zeichen am Ende der Zeile. Einige Leute hier:Vim: Mac vs. Linux^M Problem

How to convert the ^M linebreak to 'normal' linebreak in a file opened in vim?

schlug vor, dass ich einen Fund machen sollte/ersetzen oder Werkzeuge wie dos2unix. Das sind gute Vorschläge, aber bei einem versionsgesteuerten Projekt bedeutet das, dass ich nach der Änderung unnötige Commits für die Dateien hinzufügen muss, und es ist sowieso eine große Aufgabe, die es nicht wert ist, Zeit darauf zu verwenden. Also:

Gibt es trotzdem Vim dafür tolerant zu machen? Das heißt, wenn die Datei DOS-Zeilenende hat, behält sie es so bei und verwendet ihre Formatierung für neue Zeilenumbrüche und so weiter.

+2

Mit Subversion Sie eine Eigenschaft 'svn festlegen: eol-style = native', die es wird dazu führen, dass Zeilenenden zu konvertieren .. nativer Typ für alle Plattformen automatisch. Ich weiß nicht, ob Git diese Funktion hat, aber Sie könnten sich zuerst damit befassen. Wahrscheinlich. – Keith

+0

Hmm ... das ist ein guter Vorschlag. Ich sollte es versuchen. Eine Stimme von mir! – Rafid

+0

http://www.kernel.org/pub/software/scm/git/docs/gitattributes.html :-) – Keith

Antwort

1

Die beste Antwort, die ich gefunden ist @Keith Antwort in den Kommentaren:

„Mit Subversion Sie eine Eigenschaft svn festlegen: eol-style = native, die es bewirkt, dass Zeilenende konvertieren .. nativen Typ für alle Plattformen automatisch. Ich weiß nicht, ob Git diese Funktion hat, aber Sie könnten sich zuerst damit befassen. Wahrscheinlich. "

Und diese Links könnten nützliche Verbindung sein, wie zu setzen:
http://help.github.com/dealing-with-lineendings/
http://git-scm.com/docs/gitattributes

1

Ja, können Sie das folgende in vim gesetzt, es ist ein DOS-Format-Datei zu sagen:

:set ff=dos 

Und ebenso:

:set ff=unix 
+0

Ich habe es versucht und es funktioniert nicht. Außerdem möchte ich, dass dies automatisch entsprechend dem Format der Datei geschieht, anstatt es jedes Mal zu tun, wenn ich eine neue Datei öffne, ganz zu schweigen von der Verwirrung, die es verursachen würde, wenn ich es vergessen hätte, es zurück an Linux zu senden . – Rafid

2

ich diese Linie meiner .vimrc Datei hinzugefügt haben .

set fileformats=unix,mac,dos     

Wenn Sie nicht wissen, was eine vimrc ist, es ist einfach die Datei, die konfiguriert werden (und können Sie anpassen) Ihre vim. Standardmäßig sucht vim nach einer Datei namens .vimrc (beachten Sie den Punkt am Anfang) im Benutzerordner des Benutzers. Wenn es es nicht finden kann, wird es es von /etc/vimrc beziehen.

+0

Wie anders als @ Joels Antwort? – Rafid

+0

Es tut es automatisch jedes Mal, wenn Sie eine Datei in Vim laden. Sie müssen es nicht für jede Datei eingeben. Plus es befasst sich mit den 3 Arten von Wagenrücklauf (unix, mac und dos ... duh: P) – rahmu

+0

Ich sehe, ja, das ist ein guter Punkt. Leider scheint es nicht mit mir zu arbeiten. Ich mache das und ich sehe immer noch viele^M in meiner Datei. – Rafid