1. 程式人生 > >Vim 編輯器底端 [noeol], [dos] 的含義

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 [email protected]:~/www/documentcat -A hello-unix.txt Hello$ Unix$ [email protected]:~/www/document$

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

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

1 2 Hello DOS

在 Debian 下檢視此檔案的換行符資訊:

1 2 3 [email protected]:~/www/documentcat -A hello-dos.txt Hello^M$ [email protected]:~/www/document$

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

  1. Windows 下的換行符比 Linux 下的多了個 ^M;

  2. 最後一行行末沒有換行符;

這兩個不同之處也正是 [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 [email protected]:~/www/documentcat -A hello-dos.txt Hello^M$ DOS^M$ [email protected]:~/www/document$

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

如何消除 [dos] Flag 資訊?

有兩個簡單的方法:

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

  2. 在 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

相關推薦

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

有時使用 Vim 開啟一個檔案會在視窗底部發現 [noeol], [dos] 提示資訊: 1 "hello-dos.txt" [noeol][dos] 2L, 10C                          1,1           All 這兩個符號有何含義?  直觀上理

vim編輯器底行模式功能鍵

底行模式功能鍵: w 儲存; q 退出(系統提示儲存修改) q! 強制退出(對修改不做儲存) wq 儲存並退出 w[filename] 另存為filename的檔案; set nu 顯示行號; set nonu 取消行號; n1 n2 w[filename] n1,n2之間

Linux程式設計VIM編輯器底行模式和命令模式常用指令

底行模式常用命令: :w –>儲存檔案 :q –>退出 :! –>強制執行 :ls –>列出開啟的所有檔案 :n –>切換到下一個檔案 :N –>切換

windows 下安裝 vim,並通過 dos 啟動 vim 編輯

在 windows 下安裝 dos 版本的 vim:2、開啟 dos 介面,輸入 vim ,如果進不去就把 vim 的安裝路徑新增到使用者的環境變數 PATH 裡。3、開啟 vim 之後,可能無法切換到命令列模式,可以按 Ctrl+Shift 切換輸入法,之後就可以進入非編輯

VIM 編輯

編輯器v 模式進入v模式移動光標選擇區域、編程的時候需要進行多行註釋:1註釋:ctrl+v 進入列編輯模式2向下或向上移動光標3把需要註釋的行的開頭標記起來4然後按大寫的I5再插入註釋符,比如"#"。6再按Esc,就會全部註釋了。替換:% s/this/that 每一行的第一個this被替換成that :

C語言之如何讓vim編輯器永久顯示行號

語言 打開 默認 linux環境 linu 顯示 命令行模式 c語言 mrc 在Linux環境下的編輯器有vi、vim、gedit等等。 進入這些編輯器之後,為了方便我們需要編輯器顯示出當前的行號,可偏偏編輯器默認是不會顯示行號的。 我們有二種辦法可以解決: 第一

vim編輯器基本使用

文本三劍客之一vimvim編輯器文本編輯器,字處理器ASCIInano, sedvi: Visual Interfacevim: VI iMproved全屏編輯器,模式化編輯器vim模式:編輯模式(命令模式)輸入模式末行模式模式轉換:編輯-->輸入: i: 在當前光標所在字符的前面,轉為輸入模式; a:

Linux壓縮命令及vim編輯指令

tar命令 alt ima 編輯模式 vi編輯器 使用 img vim 移動 cat命令 實現幾個文件的合並,和將一個或幾個文件添加到另外一個文件中。 tar命令 將文件或目錄打包成一個文件 -c 創建一個新的tar文件

vim編輯

vim早期的Unix都是使用vi作為系統默認的編輯器。vi和vim的區別?它們都是多模式編輯器,不同的是vim 是vi的升級版本,它不僅兼容vi的所有指令,而且還有一些新的特性在裏面。vim的這些優勢主要體現在以下幾個方面:1、多級撤消我們知道在vi裏,按 u只能撤消上次命令,而在vim裏可以無限制的撤消。2

[CentOS 7系列]VIM編輯模式與命令模式

用戶 mtime 一、編輯模式按鍵作用i在當前字符前插入I在光標所在行的行首插入a在當前字符後插入A在光標所在行的行尾插入o在當前行的下一行插入新的一行O在當前的上一行插入新的一行二、命令模式命令作用/word向光標之後查找一個字符word,按n向後繼續搜索?word向光標之前查找一個字符word,按

7.1 vim編輯

vim編輯器7.1 vim編輯器文本編輯器,字處理器ASCIIvi:Visual Interfacevim:VI iMproved全屏編輯器,模式化編輯器vim模式編輯模式(命令模式)輸入模式末行模式模式轉換:編輯模式-------------------->輸入模式 i:在當前光標所在字符的前面,

vi與vim編輯器使用

vim 升級 能力 字體 files mil style vi編輯器 class vi與vim1.介紹:   vi編輯器是所有Unix及Linux系統下標準的編輯器,他就相當於windows系統中的記事本一樣,它的強大不遜色於任何最新的文本編輯器。他是我們使用Linux系統

vim編輯器(上)

vim編輯器命令vim編輯器基本命令(上) 三種模式: 編輯模式、輸入模式、末行模式 默認為編輯模式 模式轉換: 編輯模式-->輸入模式: i:insert,在光標所在處輸入 a:append,在光標出後方輸入 o:在光標所在處的下方打開一個新行;

第五天 權限掩碼vim編輯器 軟件包安裝和管理

命令模式 誤操作 文本編輯器 當前 階段 系統命令 步驟 所有 end 一、權限掩碼: 對於目錄: 權限掩碼 0022最高權限 rwxrwxrwx 777 減去權限掩碼後三位就是目錄權限 755 對於文件:最高權限 rw rw rw 666 減去權限掩碼644 修

【linux相識相知】VIM編輯

ins span ext number 命令 sub 右鍵 修改 編譯 Vim是一個類似Vi的著名的功能強大、高度可定制的文本編輯器,在Vi的基礎上改進和增加了許多的功能,VIM是自由軟件,今天我們就來講講VIM的使用方法。 本文是基於centos7上的vim編輯器演示的

vim編輯器小練習

linux1、復制/etc/grub2.cfg至/tmp目錄,用查找替換命令去刪除/tmp/grub2.cfg文件中的每一行行首的空白字符2、復制/etc/rc.d/init.d/functions至/tmp/目錄,用查找替換命令為/etc/rc.d/init.d/functions的每行開頭為空白字符的行的

Linux中vim編輯中斷提示

vim編輯器vim編輯文件的時候如果修改內容時突然斷開連接,之後重新連接會出現如上圖的消息提示,那麽這一段提示是什麽意思呢,其實真正有用的提示只有開頭和結尾的兩句:開頭的提示大致意思就是“找到一個叫/oldboy/.txt.swp臨時文件”,倒數第二行也是這個意思,最重要的是最後一行,一共有六個選擇,根據下表

2.vi 和 vim 編輯

mage linux系統 ima vim 行號 編輯模式 image eight 替換 Linux系統的命令行下的文本編輯器 三種模式   一般模式:打開文檔的默認模式   編輯模式     可以進行編輯,要按下 i a o r 等字母後才能從一般模式進入編輯模式

解決securecrt連接centos使用VIM編輯中文時亂碼

linux1)說明:Windows的默認編碼為GBK,Linux的默認編碼為UTF-8。在Windows下編輯的中文,在Linux下顯示為亂碼。為了解決此問題,修改secure CRT字符編碼為UTF-8即可2)查看支持的字符集: 如果沒有中文語言呢 可以通過網上下載安裝中文語言包yum groupi

如何讓vim編輯器永久顯示行號

clas ref etc 模式 http 文件 行號 vimr pla 在Linux環境下的編輯器有vi、vim、gedit等等。進入這些編輯器之後,為了方便我們需要編輯器顯示出當前的行號,可偏偏編輯器默認是不會顯示行號的。我們有二種辦法可以解決: