Новые строки Eclipse и Windows
Мне пришлось переместить мое рабочее пространство Eclipse из Linux в Windows, когда мой рабочий стол разбился. Через неделю я копирую его обратно в Linux, код счастливо, совершаю CVS. И увы, Windows newlines загрязнили много файлов, поэтому CVS diff сбрасывает весь файл, даже когда я изменил строку или две!
Я мог бы приготовить сценарий, но мне интересно, испортит ли он мои файлы проекта Eclipse.
6 ответов:
как уже упоминалось здесь и здесь:
установить кодировку файла
UTF-8
и окончания строк для новых файлов в Unix, так что текстовые файлы сохраняются в формате, который не является специфичным для ОС Windows и наиболее легко разделяется между разнородными рабочими столами разработчиков:
- перейдите в настройки рабочей области (общие:рабочая область)
- измените кодировку текстового файла на
UTF-8
- изменить Новый разделитель строк текстового файла на другой и выберите Unix из списка выбора
- Примечание: чтобы преобразовать конец строки существующего файла, откройте файл в Eclipse и выберите
File : Convert Line Delimiters to : Unix
Совет: вы можете легко конвертировать существующий файл, выбрав затем в Проводнике пакетов, а затем идем в пункт меню
File : Convert Line Delimiters to : Unix
есть удобная утилита 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