Подтвердить что ты не робот

Текстовый редактор Atom добавляет "^ M" к пустым строкам

Текстовый редактор Atom добавляет этот символ к каждой пустой строке.

Любая идея, что и почему?

введите описание изображения здесь

4b9b3361

Ответ 1

Я на Ubuntu Linux и заметил ^ M (возврат каретки, подача линии) во время git diff.

Как-то CRLF был выбран в нижней части строки состояния:

CRLF в строке состояния Atom

Я просто щелкнул его и изменил на LF:

LF в строке состояния Atom

Кажется, что он установлен по-по файлу, поэтому его нужно будет изменить для каждого файла проблемы.


В моем случае как-то все окончания строки были изменены, поэтому git diff было красным. Для определения "реальных" изменений я использовал следующее:

git diff --ignore-space-at-eol

Тем не менее, git commit по-прежнему будет хоронить "реальные" изменения в истории фиксации, чтобы я:

  • run git stash save
  • изменено окончание строк в атоме
  • ran git commit -am "fix line endings"
  • ran git stash apply

Теперь окончание строк исчезло, и фиксации могут быть сделаны на точной разности.

Ответ 2

Вы используете текстовый редактор Atom под Windows?
Возврат каретки Windows \r\n, пока он равен \n в Unix.
^M (0xD или \r) является символом возврата каретки в Windows.
Я думаю, что этот файл был ранее сохранен под Unix (и уже имеет \n в каждой строке), поэтому Atom добавляет \r в соответствии с требованиями Windows.

Для получения дополнительной информации вы можете увидеть this и this

Ответ 3

Проверьте нижнюю часть редактора, которая могла бы изменить окончание строки файла.

Обычно это LF для Unix

введите описание изображения здесь

и CRLF для окон

введите описание изображения здесь

Ответ 4

Большинство решений, которые я нашел в Интернете, используют sed, vi или emacs. Я нашел решение, которое работает непосредственно в Atom (и, возможно, в любом текстовом редакторе), без командной строки.

Выберите все возвращаемые значения или выберите селектор в начале каждой строки, затем удалите и нажмите return. Это может занять секунду, но оно избавится от всех символов ^ M.

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