每行^ M的文本文件

时间:2010-07-15 21:38:37

标签: text-files

我刚收到朋友的源代码文件。该文件是在UNIX中创建的。当我使用NotePad ++在Windows中打开它时,每行都有一个额外的空行。

困惑,我下载了Vim并用它来打开文件。然后我在每一行的末尾看到了一堆^ M.

这是什么^ M?你怎么防止插入?

3 个答案:

答案 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个选择

  1. 使用可以指定保存格式的编辑器
  2. 在unix like系统上使用dos2unix进行转换

答案 2 :(得分:0)

这是一个回车。 DOS / Windows编辑器倾向于使用回车符和换行符,Unix编辑器喜欢只使用换行符。像geany和textpad这样的编辑器可以检测它并且不向你展示^ M,有些编辑器会让你进行保存,因为选择包括unix样式或crlf样式。还有一个问题是文件末尾有一个EOF,有些编译器曾经要求。