Eclipse und Windows-Zeilenumbrüche
Frage
Ich musste meinen Eclipse-Workspace von Linux auf Windows, als mein Desktop abgestürzt bewegen. Eine Woche später habe ich es zurück zu Linux zu kopieren, Code glücklich, verpflichten sich zu CVS. Und ach, Fenster Zeilenumbrüche haben viele Dateien verschmutzt, so CVS diff die gesamte Datei-Dumps, auch wenn ich eine Zeile geändert oder zwei!
Ich kann einen Skript kochen, aber ich frage mich, ob es verwirrt meine Eclipse-Projekt Dateien.
Lösung
Wie bereits erwähnt hier und hier :
Set-Encodierung und Zeilenende für neue Dateien auf Unix
UTF-8
, so dass Textdateien in einem Format gespeichert werden, die nicht spezifisch für das Windows-Betriebssystem und die meisten leicht geteilt in heterogenen Entwicklern-Desktops ist:
- Navigieren Sie zu dem Arbeitsbereich Einstellungen (General: Arbeitsbereich)
- Ändern Sie den Text Datei-Codierung
UTF-8
- Ändern Sie die neue Textdatei Zeile Trennzeichen zu anderen und wählen Unix aus der Auswahlliste
- Hinweis: die Zeilenende einer bestehende Datei zu konvertieren, öffnen Sie die Datei in Eclipse und wählt
File : Convert Line Delimiters to : Unix
Tipp: : Sie können ganz einfach vorhandene Datei konvertieren, indem dann im Paket-Explorer auswählen und dann auf den Menüeintrag File : Convert Line Delimiters to : Unix
gehen
Andere Tipps
Es ist ein praktisches Dienstprogramm bash - dos2unix
- das ist ein DOS / MAC zu UNIX-Konverter Textdateiformat ist, dass, wenn nicht bereits auf Ihrer Distribution installiert ist, sollte in der Lage sein, einfach über einen Paket-Manager installiert werden. dos2unix Manpage
Zusätzlich zu den Eclipse-Lösungen und das Werkzeug in eine andere Antwort , betrachten Flip . Es kann ‚Flip‘ oder so zwischen normalen und Windows-Zeilenumbrüche und schöne Dinge tut wie der Zeitstempel und andere Statistiken der Datei erhalten.
Sie können es wie folgt verwenden, Ihr Problem zu lösen:
find . -type f -not -path './.git/*' -exec flip -u {} \;
(I in einer Klausel setzen Sie Ihre .git Verzeichnis zu ignorieren, falls Sie git verwenden, aber da Flip binäre Dateien standardmäßig ignoriert, können Sie das nicht brauchen.)
Sie können es versuchen. Das Problem ist, dass Windows einen Wagenrücklauf sowie einen Zeilenvorschub einfügt, wenn eine neue Zeile gegeben. Unix-Systeme nur einen Zeilenvorschub ein. So dass die zusätzlichen Wagenrücklaufzeichen könnten der Grund sein, warum Ihre Eclipse mit den Zeilenumbrüchen vermasseln.
Schnappen Sie sich ein oder zwei Dateien von Ihrem Projekt und wandeln sie. Sie könnten Notepad ++, dies zu tun. Öffnen Sie einfach die Datei, gehen Sie auf Format-> Konvertieren in Unix (wenn Sie Windows verwenden).
In Linux nur versuchen, diese in einer Befehlszeile:
sed 's/$'"/`echo \\\r`/" yourfile.java > output.java
rekursiv Um die Zeilenumbrüche (\r
) aus der CVS / * Dateien in allen untergeordneten Verzeichnissen zu entfernen, die folgend in einem Unix-Shell ausführen:
find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;