我刚收到朋友的源代码文件。该文件是在UNIX中创建的。当我使用NotePad ++在Windows中打开它时,每行都有一个额外的空行。
困惑,我下载了Vim并用它来打开文件。然后我在每一行的末尾看到了一堆^ M.
这是什么^ M?你怎么防止插入?
答案 0 :(得分:12)
那些是DOS / Windows风格的行结尾(这是他们现在通常所知的迂腐,但大多数早期的非UNIX操作系统,如CP / M和OS / 2也有它们)。在各种Unices上,行结尾为\n
。在DOS / Windows中,行结尾为\r\n
(CR + LF或回车和换行)。 \r
显示为^M
。要在vim中删除它们,我会这样做:
:%s/^M//
你可以通过 CTRL + V 然后 CTRL + M
如果您使用的是UNIX系统,则可以使用dos2unix
。
答案 1 :(得分:2)
它是一个windows artefact。你有2个选择
答案 2 :(得分:0)
这是一个回车。 DOS / Windows编辑器倾向于使用回车符和换行符,Unix编辑器喜欢只使用换行符。像geany和textpad这样的编辑器可以检测它并且不向你展示^ M,有些编辑器会让你进行保存,因为选择包括unix样式或crlf样式。还有一个问题是文件末尾有一个EOF,有些编译器曾经要求。