Eclipse и Windows newlines
Мне пришлось переместить рабочее пространство Eclipse из Linux в Windows, когда мой рабочий стол разбился. Через неделю я скопирую его обратно в Linux, код счастливо передаст CVS. И, увы, окна newlines загрязнили много файлов, поэтому CVS diff сбрасывает весь файл, даже когда я изменил строку или две!
Я мог бы приготовить script, но мне интересно, испортит ли он мои файлы проекта Eclipse.
Ответы
Ответ 1
Как упоминалось здесь и здесь:
Установите кодировку файла UTF-8
и окончание строк для новых файлов в Unix, чтобы текстовые файлы сохранялись в формате, не относящемся к ОС Windows, и наиболее легко разделялись на гетерогенных настольных компьютерах разработчиков:
- Перейдите к настройкам рабочей области (Общие: Рабочая область)
- Измените кодировку текстового файла на
UTF-8
- Измените разделитель строки нового текстового файла на другой и выберите Unix из списка выбора
![alt text]()
- Примечание. Чтобы преобразовать окончание строки существующего файла, откройте файл в Eclipse и выберите
File : Convert Line Delimiters to : Unix
Совет. Вы можете легко преобразовать существующий файл, выбрав его в проводнике пакетов, а затем перейдите к записи меню File : Convert Line Delimiters to : Unix
Ответ 2
У меня было то же самое, затмение загрязненных файлов даже при одном изменении строки.
Настройки Eclipse git → Добавить запись:
Ключ: core.autocrlf
Значения: true
![введите описание изображения здесь]()
![введите описание изображения здесь]()
Ответ 3
Существует удобная утилита bash - dos2unix
- это конвертер формата текстового файла DOS/MAC в UNIX, который, если он еще не установлен на вашем дистрибутиве, должен быть легко установлен через диспетчер пакетов. справочная страница dos2unix
Ответ 4
В дополнение к решениям Eclipse и инструменту, указанным в другом ответе, рассмотрите flip. Он может "переворачиваться" в любом случае между обычными и линейными червями Windows и делает приятные вещи, такие как сохранение временной метки файла и других характеристик.
Вы можете использовать его так, чтобы решить вашу проблему:
find . -type f -not -path './.git/*' -exec flip -u {} \;
(Я помещаю в предложение игнорировать ваш каталог .git, если вы используете git, но поскольку flip игнорирует двоичные файлы по умолчанию, вам может и не понадобиться.)
Ответ 5
Вы можете попробовать. Проблема в том, что Windows добавляет возврат каретки, а также линию, когда задается новая строка. Unix-системы просто вставляют строку. Таким образом, дополнительный символ возврата каретки может быть причиной того, что ваше затмение испортится с новыми линиями.
Возьмите один или два файла из вашего проекта и преобразуйте их. Вы можете использовать Notepad ++ для этого. Просто откройте файл, перейдите в Format- > Convert to Unix (когда вы используете окна).
В Linux просто попробуйте это в командной строке:
sed 's/$'"/`echo \\\r`/" yourfile.java > output.java
Ответ 6
Чтобы рекурсивно удалить возвращаемые каретки (\r
) из файлов CVS/* во всех дочерних каталогах, запустите в оболочке unix следующее:
find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;