每行^ M的文本文件

siv*_*udh 7 text-files

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

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

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

Viv*_*ath 13

这些都是DOS/Windows风格的行结束(是迂腐的,这就是他们俗称,但现在最早期的非UNIX操作系统像CP/M和OS/2有他们为好).在各种Unices上,行结尾是\n.在DOS/Windows中,行结尾是\r\n(CR + LF或Carriage-Return和Line-Feed).这\r是出现的^M.要在vim中删除它们,我会:

:%s/^M//
Run Code Online (Sandbox Code Playgroud)

您可以通过CTRL+ V然后CTRL+ 来获得^ M.M

如果您使用的是UNIX系统,则可以使用dos2unix.

  • 补充一点,如果您使用的是脚本(比如 Python), ^M 将不会被正确解释,因此您需要使用 \r 代替。我花了一段时间才弄清楚这一点。 (3认同)