在unix中讀DOS文檔,轉換

如何得知目前的設定

:set 或 :se 會顯示所有經過修改的部份,就是和預設值不一樣的部份。
:set all 顯示目前所有設定值內容。
:set option? 顯示 option 這設定的目前值。
:set option 直接線上設定,有些設定需加 = 後加上設定值內容。
:set nooption 取消該設定。

fileformat(ff)  
這是寫入檔案時置放 EOL(end of line) 的形式
dos 是以 0D 0A 來斷行。
unix 是以 0A 來斷行。
mac 是以 0D 來斷行。
預設以各系統平檯而定,在 Linux 當然是 unix 形式。

fileformats(ffs)   
可指定多個,會依載入的檔案形式來調整 ff。
例如 :set ffs=unix,dos ff=unix
則預設為 unix 格式,但如讀入的是 dos 格式的檔案,會自動調整
為 dos 格式,這樣存檔時就會以 dos 格式存檔(狀態列會顯示)。
。此時如要改成 unix 格式,可 set ff=unix 然後存檔就會轉成
unix 格式,反之亦然。

如果不這樣設,也就是您不管 ff 或 ffs 都設成 unix,那讀入 dos 格式的檔案時在每行尾會出現 ^M 這個字元(就是 0D 啦!)這時縱使 :set ff=unix 也來不及了!只好 :%s/^M//g 來消去這個 ^M。ㄟ,還記得怎麼替換嗎?就是把 ^M 換成沒有啦!而且 ^M 怎麼打出來的還記得吧!翻一翻前面的單元吧!

Hey,你怎麼知道是 0D 呀!好吧!告訴您一個密秘,您把游標移到 ^M 那個位置,然後按 ga 在狀態列就會顯示 10,16,8 進位的值。其它的字元也是可以如此顯示。a 就是 ascii 的意思。但這是 vim 的擴充功能,elvis 沒有。

elvis 縱使載入 dos 格式的檔案,也是會自動把 ^M 隱藏起來。
from 大家來學VIM(一個歷久彌新的編輯器)[九]  set 功能設定

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *