解決VIM中打開文件里有的^M字符&Linux命令dos2unix

  • 產(chǎn)生問題的原因:

    創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供寶安網(wǎng)站建設(shè)、寶安做網(wǎng)站、寶安網(wǎng)站設(shè)計、寶安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、寶安企業(yè)網(wǎng)站模板建站服務(wù),十余年寶安做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

    在linux下,不可避免的會用VIM打開一些windows下編輯過的文本文件。我們會發(fā)現(xiàn)文件的每行結(jié)尾都會有一個^M符號,這是因為 DOS下的編輯器和Linux編輯器對文件行末的回車符處理不一致,對于回車符的定義:

      windows:0D0A
      unix\linux: 0A
      MAC: 0D

    DOS, Mac 和Unix格式的文件回想計算機(jī)的史前史,那時的打字機(jī)使用兩個字符來開始一個新行。首先是一個字符命令使打印頭移回開始位置(回車,<CR>),然后另一個字符命令控制向前進(jìn)紙一行(進(jìn)紙,<LF>).在計算機(jī)誕生之初,存儲設(shè)備十分昂貴。于是有人就提出沒有必要用兩個字符來表示一行的結(jié)束。UNIX一族決定只用進(jìn)紙一個字符<Line Feed>來表示行尾。來自蘋果陣營的人則把回車<CR>作為換行的標(biāo)準(zhǔn)。MS-DOS(和微軟的Windows)仍然決定沿用古老的回車換行<CR><LF>傳統(tǒng)。這也意味著如果把文件從一個系統(tǒng)移到另一個不同的系統(tǒng),你就會遇到與換行相關(guān)的問題。Vim編輯器則可以識別這些不同格式的文件。
  • 解決方法:

  1. 在命令模式下使用正則表達(dá)式進(jìn)行字符全文空替換:

:%s/^M//g

其中"^M"的輸入,分別是“Ctrl+v”、“Ctrl+M”鍵生成的。像^M這樣的在VIM中是控制字符,在查找替換中輸入控制字符必須用別的方法,那就是在輸入^M時,必須依次在鍵盤上敲入Ctrl+V和Ctrl+M。

解決VIM中打開文件里有的^M字符 & Linux命令dos2unix

2.  使用sed 工具

$ sed -e 's/\x0D//g' mydebug.c > temp_mydebug.c23

3.  最簡單的使用dos2unix工具

$ sudo apt-get install dos2unix
$ dos2unix README.txt

解決VIM中打開文件里有的^M字符 & Linux命令dos2unix

參考文檔:

如何解決VIM中打開文件里有的^M

vim打開文件有^M結(jié)尾

在Vim中查找替換控制字符

關(guān)于linux中使用vim打開文件出現(xiàn)^M的解決方法

Linux命令dos2unix簡析

dos2unix 下載

文章標(biāo)題:解決VIM中打開文件里有的^M字符&Linux命令dos2unix
文章路徑:http://bm7419.com/article34/gijcpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作用戶體驗、手機(jī)網(wǎng)站建設(shè)、ChatGPT、定制開發(fā)、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司