Vim 編輯器底端 [noeol], [dos] 的含義

來源:互聯網
上載者:User
Vim 編輯器底端 [noeol], [dos] 的含義

有時使用 Vim 開啟一個檔案會在視窗底部發現 [noeol], [dos] 提示資訊:

1 "hello-dos.txt"  [noeol][dos] 2L, 10C                          1,1           All

這兩個符號有何含義。 


直觀上理解,'noeol' 就是 'no end-of-line', 即“沒有行末結束符”, Linux 下的文字編輯器(如 Vim)會在每一行 (包括最後一行)末尾添加一個分行符號。比如我們在 Debian 下建立一個名為 'hello-unix.txt' 的文字檔,內容如下:

1 2 Hello Unix

那麼,使用cat -A hello-unix.txt命令可以看到這些分行符號:

1 2 3 4 ts@TS:~ /www/document $  cat  -A hello-unix.txt Hello$ Unix$ ts@TS:~ /www/document $

從中可以清楚地看到每行末尾的 '$' 字元,這就是 Linux 下的“行末結束符”。 


下面我們再在 Windows 下建立一個名為 'hello-dos.txt' 記事本檔案,內容如下:

1 2 Hello DOS

在 Debian 下查看此檔案的分行符號資訊:

1 2 3 ts@TS:~ /www/document $  cat  -A hello-dos.txt Hello^M$ DOSts@TS:~ /www/document $

同樣是兩行,每行一個單詞,Windows 和 Linux 下的分行符號有兩個明顯不同:

Windows 下的分行符號比 Linux 下的多了個 ^M;

最後一行行末沒有分行符號;

這兩個不同之處也正是 [dos], [noeol] 兩個 Flag 資訊出現的原因。 Windows 下文字檔每行的分行符號為“斷行符號+換行“(CRLF,^M$), 而 Linux 下則僅為 “換行” (LF, $). Vim 發現文本中含有 ^m$ 換行字元判定為 Windows 下建立的 檔案,用 [dos] Flag 提示;Vim 沒有在最後一行發現分行符號,判定此檔案不是在 Linux 下建立/編輯,用 [noeol] Flag 提示使用者。

如何消除 [noeol] Flag 資訊。

只需在 Debian 下將該檔案重新儲存即可,還是上面的 hello-dos.txt 檔案,開啟它, 不做任何修改直接 :wq儲存退出,再查看分行符號:

1 2 3 4 ts@TS:~ /www/document $  cat  -A hello-dos.txt Hello^M$ DOS^M$ ts@TS:~ /www/document $

分行符號已經追加上去,這裡要注意的是追加的是 Windows 下的分行符號(斷行符號+換行) ^M$, 而不是 Linux 下的分行符號(換行)$, 因為 Vim 已經發現此檔案 是在 Windows 下建立的([dos] Flag),儘管是在 Linux 下編輯,Vim 也會按照檔案建立 時所在的作業系統下的換行規則添加分行符號。

如何消除 [dos] Flag 資訊。


有兩個簡單的方法:

Linux 下提供有兩個命令用來進行 Windows 和 Unix 檔案的轉化:dos2unix 和 unix2dos;

在 Debian 下使用 touch template.txt 建立一個模板,在 Windows 下建立的任 何文字檔都以此模板為基礎;


參考資料


http://unix.stackexchange.com/questions/31807/what-does-the-noeol-indicator-at-the-bottom-of-a-vim-edit-session-mean

http://linux.vbird.org/linux_basic/0310vi.php#tips_dos


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.