Новые строки Eclipse и Windows


Мне пришлось переместить мое рабочее пространство Eclipse из Linux в Windows, когда мой рабочий стол разбился. Через неделю я копирую его обратно в Linux, код счастливо, совершаю CVS. И увы, Windows newlines загрязнили много файлов, поэтому CVS diff сбрасывает весь файл, даже когда я изменил строку или две!

Я мог бы приготовить сценарий, но мне интересно, испортит ли он мои файлы проекта Eclipse.

6 165

6 ответов:

как уже упоминалось здесь и здесь:

установить кодировку файла UTF-8 и окончания строк для новых файлов в Unix, так что текстовые файлы сохраняются в формате, который не является специфичным для ОС Windows и наиболее легко разделяется между разнородными рабочими столами разработчиков:

  • перейдите в настройки рабочей области (общие:рабочая область)
  • измените кодировку текстового файла на UTF-8
  • изменить Новый разделитель строк текстового файла на другой и выберите Unix из списка выбора

alt text

  • Примечание: чтобы преобразовать конец строки существующего файла, откройте файл в Eclipse и выберите File : Convert Line Delimiters to : Unix

Совет: вы можете легко конвертировать существующий файл, выбрав затем в Проводнике пакетов, а затем идем в пункт меню File : Convert Line Delimiters to : Unix

У меня были такие же, eclipse загрязненные файлы даже с одним изменением строки. Решение: настройки Eclipse git - > добавить запись: Ключ: ядро.autocrlf Значения: true

enter image description here

enter image description here

есть удобная утилита bash -dos2unix - который является конвертером текстовых файлов DOS/MAC в UNIX, который, если он еще не установлен на вашем дистрибутиве, должен быть легко установлен с помощью диспетчера пакетов. dos2unix man page

В дополнение к решениям Eclipse и средства, упомянутые в еще один ответ, считать флип. Он может "перевернуть" в любом случае между обычными и Windows linebreaks, и делает хорошие вещи, такие как сохранение метки времени файла и другие статистические данные.

вы можете использовать это, чтобы решить вашу проблему:

find . -type f -not -path './.git/*' -exec flip -u {} \;

(я вставил предложение, чтобы игнорировать ваш .каталог git, если вы используете git, но так как flip игнорирует двоичные файлы по умолчанию, вы не можете нуждаться в этом.)

вы могли бы попробовать. Проблема в том, что Windows вставляет возврат каретки, а также подачу строки при задании новой строки. UNIX-систем просто вставить перевод строки. Таким образом, дополнительный символ возврата каретки может быть причиной того, что ваше затмение испортит новые строки.

Возьмите один или два файла из вашего проекта и конвертировать их. Для этого можно использовать Notepad++. Просто откройте файл, перейдите в формат - >конвертировать в Unix (когда вы используете windows).

в Linux просто попробуйте это в командной строке:

sed 's/$'"/`echo \\r`/" yourfile.java > output.java

чтобы рекурсивно удалить возврат каретки (\r) из файлов CVS/* во всех дочерних каталогах выполните следующие действия в оболочке unix:

find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;