首頁  >  文章  >  運維  >  linux vi與vim的差別是什麼

linux vi與vim的差別是什麼

青灯夜游
青灯夜游原創
2021-11-23 11:30:4214033瀏覽

區別:1、vi中按u只能撤銷上次命令,而vim中可以無限制的撤消命令;2、vi只能運行於unix中,而vim可以運行於多種操作平台;3、vim中有語法加亮功能,vi中沒有;4、vi支援3個模式,而vim支援4個模式等。

linux vi與vim的差別是什麼

本教學操作環境:CentOS 6系統、Dell G3電腦。

VI與VIM區別

它們都是多模式編輯器,不同的是vim 是vi的升級版本,它不僅相容於vi的所有指令,而且還有一些新的特性在裡面。

vim的這些優勢主要體現在以下幾個面向:

1、多層撤消 

我們知道在vi裡,按u只能撤銷上次命令,而在vim裡可以無限制的撤銷。

2、易用性

vi只能運行於unix中,而vim不僅可以運行於unix,windows ,mac等多操作平台。

3、語法加亮 

vim可以用不同的顏色來加亮你的程式碼。

4、視覺化操作 

就是說vim不僅可以在終端機上運行,也可以運行在x window、 mac os、windows。

5、對vi的完全相容 

某些情況下,你可以把vim當成vi來使用。

vi和vim都是Linux中的編輯器,不同的是vim比較高級,可以視為vi的升級版本。 vi適用於文字編輯,但vim比較適用於coding。

VI模式

vi有3個模式:命令列模式(command mode/一般模式)、文字輸入模式( input mode/編輯模式)、末行模式(last line mode/指令列命令模式)。

  • 命令列模式(command mode/一般模式)

     任何時候,不管使用者處於何種模式,只要按一下「ESC」鍵,即可使Vi進入命令列模式;我們在shell環境(提示字元為$)下輸入啟動Vi命令,進入編輯器時,也是處於該模式下。  
      在這個模式下,使用者可以輸入各種合法的Vi指令,用於管理自己的文件。此時從鍵盤上輸入的任何字元都被當作編輯命令來解釋,若輸入的字元是合法的Vi命令,則Vi在接受使用者命令之後完成對應的動作。但要注意的是,所輸入的命令並不會在螢幕上顯示出來。若輸入的字元不是Vi的合法命令,Vi會響鈴警報。

  • 文字輸入模式(input mode/編輯模式)

    #  在指令模式下輸入插入指令i(insert)、附加指令a( append)、開啟指令o(open)、修改指令c(change)、取代指令r或取代指令s都可以進入文字輸入模式。在該模式下,使用者輸入的任何字元都會被Vi當做檔案內容保存起來,並將其顯示在螢幕上。在文字輸入過程中,若想回到指令模式下,按”ESC”鍵即可。 

  • 末行模式 (last line mode/指令列指令模式)

     末行模式也稱為ex轉義模式。  
      Vi和Ex編輯器的功能是相同的,二者主要差異是使用者介面。在Vi中,指令通常是單一鍵,例如i、a、o等;而在Ex中,指令是以回車鍵結束的正文行。 Vi有一個專門的「轉義」指令,可存取很多面向行的Ex指令。
      在指令模式下,使用者按下「:」鍵即可進入末行模式下,此時Vi會在顯示視窗的最後一行(通常也是螢幕的最後一行)顯示一個「:」作為末行模式的提示符,等待使用者輸入命令。多數文件管理指令都是在此模式下執行的(如把編輯緩衝區的內容寫到文件中等)。末行指令執行完後,Vi自動回到指令模式。

VIM模式

#vim一共有4個模式:

  • # #正常模式(Normal-mode) 

  • 插入模式(Insert-mode) 

  • 指令模式(Command-mode) 

  • 可視模式(Visual-mode)

#正常模式

啟動vim後預設為正常模式。不論位於什麼模式,按下

鍵(有時需要按兩下)都會進入正常模式。

插入模式

在正常模式中按下i, I, a, A等鍵,會進入插入模式。

現在只用記住按i鍵會進行插入模式。在插入模式中,按鍵時會寫入對應的字元。

指令模式

在正常模式中,按下:(英文冒號)鍵,會進入指令模式。

在命令模式中可以執行一些輸入並執行一些vim或外掛程式提供的指令,就像在shell裡一樣。這些指令包括設定環境、檔案操作、呼叫某個功能等等。

常用的指令有:q(退出)、q!(強制退出)、w(儲存)、wq(儲存並退出)。

視覺模式

在正常模式中按下v, V, <Ctrl> v,可以進入視覺模式。

視覺模式中的操作有點像拿滑鼠來操作,選擇文字的時候有一種滑鼠選擇的即視感,有時會很方便。

相關推薦:《Linux影片教學

以上是linux vi與vim的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn