8

Когда я делаю git diff в своей ветке, я вижу, что в конце строки есть символы ^ M:

^ M Концы строк

Я хочу заменить их окончаниями строк Unix перед тем, как вносить изменения.

Я использую Ubuntu 14.04, git и sublime text 3.

Спасибо за вашу помощь.

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

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

5 ответов5

6

^M - это \r (Control-M или возврат каретки).

Вероятно, это связано с тем, что пользователь, который зафиксировал файл, использовал windows, который использует \r\n для окончания строки. Linux использует только \n , поэтому вы видите ^M в конце строки.

Вы, вероятно, хотите сделать одно из следующего:

  • «Исправьте» файл, чтобы иметь \n окончания строки (используя такой инструмент, как dos2unix) и зафиксировать. В этом случае вы будете сражаться с другим пользователем, если вы не можете заставить его сделать следующее.
  • Сконфигурируйте обе ваши установки git для правильной обработки концов строк для каждой среды - например: https://stackoverflow.com/questions/10418975/how-to-change-line-ending-settings
  • Сконфигурируйте Sublime, чтобы открыть файл с « Концами строк Windows »
6

Вы можете использовать команду dos2unix в linux (пакет dos2unix) или изменить окончания строк в Sublime Text в пункте меню View / Line Endings.

5

Это может быть сделано без плагина через меню вверху или через строку состояния (но вам нужно включить функцию).

Чтобы изменить его через меню вверху, нажмите Вид -> Концы строк -> Выберите нужный тип окончания строки.

Чтобы включить это через строку состояния: Нажмите "Настройки" -> "Настройки", затем добавьте "show_line_endings": true, где-то между скобками {} справа. Наконец, сохраните ваши изменения.

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

Еще одна полезная опция - это кодировка файла, которую также можно включить в строке состояния, следуя тем же настройкам, что и выше, но также добавив "show_encoding": true, между знаками {} .

3

Я нашел плагин для возвышенного текста, который преобразует окончания строк во всех открытых файлах в Unix/Windows/Mac OS 9.

Монтаж

  1. Откройте Sublime и перейдите в «Настройки»> «Обзор пакетов». Это откроет окно.
  2. Загрузите или клонируйте содержимое этого репозитория в папку с именем, точно совпадающим с именем пакета, в папку Packages/, которую вы открыли на предыдущем шаге:

/home/YOUR_USERNAME/.config/sublime-text-3/Packages

использование

  1. Вернитесь к возвышенному и откройте все файлы, которые вы хотите конвертировать.
  2. Когда все файлы открыты, нажмите CTRL + SHIFT + P, найдите и выберите «Конец строки для всех видов: Unix».
  3. Нажмите CTRL + ALT + S, чтобы сохранить все открытые файлы.
2

Кому может не захотеть устанавливать дополнительный плагин для удаления ^ M новых строк,

  1. В настройке возвышенного текста добавьте "trim_trailing_white_space_on_save": true, чтобы автоматически удалять пробел при сохранении. (Этот шаг может быть необязательным)

  2. В открывшемся файле нажмите правый нижний угол возвышенного текста. Измените Windows на Unix и сохраните.

  1. ^ М ушел. Наслаждаться.

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