學習vi和vim編輯器(1):vi文字編輯器

來源:互聯網
上載者:User

學習vi和vim編輯器(1):vi文字編輯器

UNIX系統中有很多編輯器,可以分為兩種類型:行編輯器和全屏編輯器。行編輯器每次只能在螢幕中顯示檔案的一行,如ed和ex編輯器,全屏編輯器可以在螢幕上顯示檔案的一部分。

vi(讀為vee-eye)編輯器是UNIX_Like作業系統的標準文字編輯器。vi是 visual editor的縮寫,vi編輯器屬於全屏編輯器,可以在閱讀檔案時當場就修改,並且立刻看到修改後的結果。對於新手而言,vi編輯器難度還是非常大的,但是一旦熟悉了vi編輯器,可能就再也不想重新使用其他“簡單”的編輯器了。學習vi編輯器時,要學著把編輯工作交給電腦。因為這本來就是電腦的工作。

vi編輯器有兩種模式:命令模式和插入模式。在命令模式中,所輸入的一切都會被vi編輯器解釋為輸入的命令。而在插入模式中,所輸入的一切都會被當做輸入的文本插入到正在編輯的檔案。在vi編輯器中,命令有如下特點:

* 命令是大小寫敏感的,也就是區分大小;

* 輸入命令時,命令不會顯示在螢幕上;

* 輸入完命令後不需要加入enter鍵。

同時有一組命令會顯示在螢幕的底端,在這些命令前有特殊的符號,例如冒號(:)用於開始所有的ex命令。vi編輯器使用的底層編輯器就是ex行編輯器,vi只是其可視化的模式。因此可以在vi編輯器中使用ex編輯器的命令。

既然是文字編輯器,那麼首先需要學習的就是如何開啟與關閉檔案。可以使用vi編輯器來編輯任何文本,需要說明的是,vi將需要編輯的檔案內容複寫到記憶體中的緩衝區中,因此我們修改的只是記憶體中檔案的副本,只有將緩衝區裡的檔案內容進行儲存,才能將對檔案的編輯結果更新到磁碟中的檔案中。儲存緩衝區的檔案內容就是我們通常所說的“寫入檔案”或者說“儲存檔案”。

開啟檔案: vi [filename]

如果沒有指定filename,那麼vi將開啟一個未命名的緩衝區,當我們將緩衝區裡的內容寫入到檔案時,此時需要指定filename。如果filename當前已經存在,則是編輯一個已存在的檔案,如果filename不存在,則相當於建立一個新的檔案(需要將建立的緩衝區儲存才會真的產生一個名為filename的檔案),當開啟一個新的檔案時,vi編輯器的底部狀態列會有相應訊息,:


開啟檔案時遇到的問題:

* 你認為應該是編輯一個現有檔案,但是vi編輯器卻顯示 "[New File]"。這個問題可以肯定的說是你輸入的檔案名稱出錯了。

* 出現如所示的[readonly],"Permission denied"等訊息。這是因為你對該檔案沒有寫入權限或者使用了vi編輯器的查看模式(vi -R)

* 輸入 :q 命令離開時,卻出現如下警告:<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20141013/2014101309165279.png" alt="\">

這是因為你修改了檔案(很可能你自己都不知道修改了哪裡),由於此時檔案已經發生了變動,vi編輯器一定會讓你選擇是否儲存編輯結果才能離開,因此此時可以使用 ZZ命令儲存修改結果然後退出,或者使用 :q! 不儲存編輯結果然後離開。

儲存與離開檔案:

ZZ命令: 儲存編輯結果,離開vi編輯器。還可以使用ex命令來儲存編輯結果, :w 命令只儲存(寫入)編輯結果,不離開編輯器。 :wq 命令儲存編輯結果離開vi編輯器(:wq 與 ZZ 命令相同)

結束而不儲存編輯結果:

:e! 命令:該命令可以消除所有的編輯結果,直接回到最近一次儲存時的檔案內容,也就是說可以“從頭再來”。 :q! 命令也是直接忽略當前的編輯結果,回到上一次儲存時的檔案內容,同時離開vi編輯器。 為什麼這兩個命令後面都有驚嘆號呢,因為 :e 和 :q 命令都會讓當前的編輯效果消失,而vi編輯器一般不會讓你放棄編輯結果,因此加上驚嘆號後,就可以使vi不理會這個禁令,直接將當前的編輯結果放棄,回到最近一次儲存時的檔案內容。

儲存檔案時發生的問題:

* 寫了半天,發現沒有寫入權限。 可以使用 :w filename 將當前結果寫入到一個新的檔案(由於此時會在目錄中新建立一個檔案,因此需要將該檔案寫入到一個對你而言具有寫入權限的目錄下)

* 嘗試寫檔案,卻發現檔案系統已滿。這個解決方案由很多,一方面可以將該檔案寫入到具有剩餘空間的檔案系統,另一面可以直接輸入: !sh 回到shell環境中刪除當前檔案系統的一些大檔案。在ex命令中可以用驚嘆號後面接UNIX命令,直接執行相應的UNIX命令。如所示,輸入 :!pwd 顯示目前的目錄:


輸入命令之後就會暫時退出vi編輯器,顯示出命令執行的結果:

此時按下enter鍵後就能重新回到vi編輯器了。

本章vi編輯器命令總結:

ZZ,:w, :q, :wq, :q!, :e! 。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.