vim下處理文件中的 字元

aqiongbei發表於2017-08-11

問題復現

拿到的文件中包含了大量的

等字元,形如:


























 
 <title>歷史賬單</title>
 









<script type="text/javascript" src="/pages/js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="/cms/up3/js/jquery.flashSlider-1.0.min.js"></script>
<script type="text/javascript" src="/cms/up3/js/common.js">

看起來亂糟糟的,很不直觀。

問題分析

簡單的說是由於WindowsLinux換行的表示不一樣導致的。詳細的可以參考這篇文章linux下與windows下的換行符。這裡不做過多的探究。我們只需要把這些字元替換成Linux中對應的表示即可。在Ubuntu中我們使用
來表示換行(關於換行與回車可以參考回車與換行的區別),這裡我們還要注意一點就是即使你在Windows環境下,對於Vim來說都是都是有固定的表示的。可以參考這個Why is r a newline for Vim?,這裡我們只要知道:我們把
換成
就可以了

問題解決

上面的問題多處於Linux機器上,我們使用Vim來進行處理。步驟如下:

  • 把有如上問題的文件丟進Vim編輯器
  • Vim中使用如下命令來處理
    (記得轉義),替換成
    的換行
:1,$s/\r\n/
/g
  • 同樣的方式處理 ,將至替換成四個空格
:1,$s/\t/    /g

方法詳解

上面的解決方法是利用Vim的替換功能將字元替換成對應的正確的表示。其中:

1,$s/

表示從第一行到最後一行開始匹配,匹配的內容是後面的正則。

/\r\n/
/g

這裡是一個正則以及要替換的內容。遵循這樣的格式:/要正則匹配的部分/要替換成的部分/g

參考資料

相關文章