Я просто получил файл исходного кода от друга. Файл был создан в UNIX. Когда я открыл его в использовании Windows NotePad ++, каждая строка имела одну дополнительную пустую строку.
Озадаченный, я загрузил Vim и использовал его для открытия файла. Я затем видел набор ^M в конце каждой строки.
Каков этот ^M? Как Вы препятствуете тому, чтобы он был вставлен?
Это окончания строк в стиле DOS / Windows (чтобы быть педантичным, это то, что они обычно называют сейчас, но наиболее ранние операционные системы, отличные от UNIX, такие как CP / M и OS / 2, также имели их). В различных системах Unix окончания строк имеют вид \ n
. В DOS / Windows окончание строки \ r \ n
(CR + LF или возврат каретки и перевод строки). \ r
- это то, что отображается как ^ M
. Чтобы удалить их в vim, я делаю:
:%s/^M//
Вы можете получить ^ M, выполнив CTRL + V , а затем CTRL + M
Если вы работаете в системе UNIX, вы можете использовать dos2unix
.
артефакт Windows. У вас есть 2 варианта
Это возврат каретки.Редакторы DOS / Windows обычно используют возврат каретки и перевод строки, редакторы Unix предпочитают использовать только перевод строки. Некоторые редакторы, такие как geany и textpad, могут обнаружить это и не показать вам ^ M, а некоторые позволят вам сохранить, если вы выберете стиль unix или стиль crlf. Также существует проблема наличия EOF в конце файла, который раньше требовался некоторыми компиляторами.