2010-07-15 90 views
6

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

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

这是什么^ M?你如何防止它被插入?

回答

11

这些都是DOS/Windows风格的行结束(以是迂腐的,这就是他们通常所知的现在,但大多数早期的非UNIX操作系统,如CP/M和OS/2也有它们)。在各种联合国,行结局是\n。在DOS/Windows中,行尾是\r\n(CR + LF或回车和换行)。 \r显示为^M。为了消除他们的vim,我做的:

:%s/^M// 

您可以通过执行CTRL + V获得^ M然后CTRL + 中号

如果你是一个UNIX系统,您可以使用dos2unix

+1

为了增加这一点,如果您使用脚本(比如说Python),^ M将不会被正确解释,因此您需要使用\ r。花了我一段时间来弄清楚这一点。 – Flaviu 2012-03-24 11:51:48

0

这是一个回车。 DOS/Windows编辑器倾向于使用回车符和换行符,Unix编辑器喜欢使用换行符。一些像geany和textpad这样的编辑器可以检测到它,并且不会向您显示^ M,并且有些编辑器会让您进行保存,因为选项包括unix style或crlf style。还有一些编译器过去需要在文件末尾加上EOF的问题。

2

其窗户制品。你有两个选择

  1. 使用编辑器,你可以指定保存格式
  2. 使用DOS2UNIX的一个类Unix系统转换