Вопрос

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

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

Это было полезно?

Решение

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

Установите кодировку файла на 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 Значения:верно

enter image description here

enter image description here

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

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

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

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

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

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

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

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

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

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

find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top