7

Меня давно мучила эта проблема, и я просто пытался ее игнорировать, но когда я впервые открываю файлы, которые были сохранены из окна mac/unix, я вижу дополнительный разрыв строки после каждой строки:

something like

this

which is pretty

annoying

Обычно я просто исправляю это поведение в Google, например, решение TextFX, чтобы удалить все пустые строки.

Но мне просто любопытно, почему это происходит. Зачем? Почему это не происходит снова, даже если я сохраняю файл, помещаю его в репозиторий git (и когда он редактируется другим пользователем в mac/unix), я больше не вижу этой проблемы?

РЕДАКТИРОВАТЬ

проблема с git была у меня раньше, но наша текущая проблема сейчас заключается в том, что мы загружаем файлы с помощью скрепки Rail, которая сохраняет ее в файловую систему (мы используем Windows-машину). когда мы открываем файлы, мы видим его как "macintosh" "ansi", даже если сервер работает на Windows. Есть ли способ заставить его открыть его с правильной кодировкой по умолчанию?

3 ответа3

7

Я боролся с одной и той же проблемой в течение нескольких лет, но после прочтения этого поста и опробования некоторых настроек в Notepad++ он оказался не Notepad++, который изменяет настройки LF или CR.

Моя «проблема» была вызвана настройкой Filezilla, с помощью которой я загружаю файлы со своего веб-сайта, чтобы редактировать их в Notepad++.

В Filezilla у меня было много расширений в настройке «Автоматическая классификация типов файлов» (перейдите в « Правка»> «Настройки»> «Передачи»> «Типы файлов»). После того как я очистил их все и заново загрузил свой файл, он прекрасно открылся в Notepad++, больше никаких лишних разрывов строк. Также проверено, чтобы отредактировать файл, загрузить его, загрузить и снова редактировать.

Итак, в Notepad++ мои настройки по умолчанию для новых файлов:

  • Кодировка: ANSI
  • Формат: Windows

А в Filezilla настройки таковы:

  • Тип передачи: Авто
  • Автоматическая классификация типов файлов: список расширений пуст

Это решило мою проблему.

Надеюсь, поможет.

0

Я попробовал вышеуказанные решения, и ни одно из них не помогло мне, но оказалось, что это был FileZilla.

На одном из их форумов я нашел рекомендацию переводить в бинарном режиме вместо автоматического. Как только я изменил это, моя проблема была решена. :)

отрывок:

Установите тип передачи (меню Transfer) из Auto в Binary и загрузите свой скрипт.

0

Это поможет получить больше информации, как

  1. Какой редактор вы используете на Mac/Unix?
  2. Когда вы открываете его в Notepad++, что он говорит в строке состояния? Dos/Unix/Mac?
  3. Это также происходит, если файл не проходит через git?

Концы строк в течение долгого времени доставляли неудобства при передаче файлов между системами, и вы можете прочитать больше об этом в Википедии. Проблема в том, что Windows использует CR+LF в качестве переносов строк, Mac использует только CR, а Unix использует только LF (я знаю, что это не жесткое и быстрое правило, но в целом).

При использовании редактора, ожидающего файл в формате Unix и получающего файл в формате Windows, редактор может неправильно интерпретировать CR+LF как два переноса строки вместо одного. Также распространено, что это показывает себя в качестве конечных символов в каждой строке, обычно квадрат или другая ерунда.

Вы должны быть в состоянии проверить, происходит ли это с вами в Notepad++, перейдя в View-> Show Symbol-> Show End of Line. Вы также должны иметь возможность исправить это, используя функцию Edit-> EOL Conversion.

Также возможно, что это вызвано или может быть решено в ваших настройках git. Git имеет три параметра: core.eol, core.safecrlf и core.autocrlf, о которых вы можете прочитать больше на странице руководства git config

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .