2010-07-15 78 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系統轉換