2017-07-26 77 views
0

我已經從Windows記事本複製了一段代碼並粘貼到我的服務器文件中。 它不顯示在vi編輯器的任何^ M字符,但是當我做git的差異也顯示了在改變被粘貼^M顯示在git diff中,但不是vi編輯器

的地方^ M字符我試圖修復它

  1. 通過搜索^在服務器上的文件M個模式,但沒能找到vi編輯器使用:%s/^M//g
  2. 也試過dos2unix命令,但它同時使用gitdiff因爲它顯示了整個文件,因此轉換整個文件沒有用這個模式
+0

https://stackoverflow.com/questions/2188737/how-do-i-search-for-n-without-a-preceding-刪除r-in-vim – ElpieKay

+0

Vi正在幫助和隱藏dos/unix行結尾的差異。你知道^ M是哪裏,是正確的,所以在vi中刪除它周圍的字符,然後重新輸入它們。 – Mort

回答

1

^M是在Windows上使用的CR字符(與LF一起用於編碼端點)。 顯示它在Vim的類型:

:e ++ff=unix 

然後你就可以用刪除這些字符進行。

也可以搜索他們的Vim \r:%s/\r//g

+0

「:e ++ ff = unix」在完整文件中引入^ M字符 – developer

+0

「:e ++ ff = unix」在完整文件 中引入^ M字符,並從文件中刪除所有^ M字符, git diff中的文件 直接在vi編輯器中完成的任何更改也會在git diff中顯示^ M字符(不在vi編輯器中)。 我只是想刪除^ M在git diff中 – developer