Linux下vi與vim命令使用與區別

2021-07-30 05:25:52 字數 4289 閱讀 6980

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

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

① 多級撤消

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

② 易用性

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

③ 語法加亮

vim可以用不同的顏色來加亮你的**。

④ 視覺化操作

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

⑤ 對vi的完全相容

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

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

任何時候,不管使用者處於何種模式,只要按一下「esc」鍵,即可使vi進入命令列模式。我們在shell環境(提示符為$)下輸入啟動vi命令,進入編輯器時,也是處於該模式下。

在該模式下,使用者可以輸入各種合法的vi命令,用於管理自己的文件。此時從鍵盤上輸入的任何字元都被當做編輯命令來解釋,若輸入的字元是合法的vi命令,則vi在接受使用者命令之後完成相應的動作。但需注意的是,所輸入的命令並不在螢幕上顯示出來。若輸入的字元不是vi的合法命令,vi會響鈴報警。

在該模式下,使用者輸入的任何字元都被vi當做檔案內容儲存起來,並將其顯示在螢幕上。在文字輸入過程中,若想回到命令模式下,按"esc"鍵即可。

末行模式也稱ex轉義模式。

vi和ex編輯器的功能是相同的,二者主要區別是使用者介面。

在vi中,命令通常是單個鍵,例如i、a、o等;而在ex中,命令是以按回車鍵結束的正文行。vi有乙個專門的「轉義」命令,可訪問很多面向行的ex命令。

在命令模式下,使用者按「:」鍵即可進入末行模式下,此時vi會在顯示視窗的最後一行(通常也是螢幕的最後一行)顯示乙個「:」作為末行模式的提示符,等待使用者輸入命令。

多數檔案管理命令都是在此模式下執行的(如把編輯緩衝區的內容寫到檔案中等)。末行命令執行完後,vi自動回到命令模式。

正常模式 (normal-mode)

插入模式 (insert-mode)

命令模式 (command-mode)

可視模式 (visual-mode)

啟動vim後預設處於正常模式。不論位於什麼模式,按下鍵(有時需要按兩下)都會進入正常模式。

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

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

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

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

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

在正常模式中按下v, v,+v,可以進入可視模式。

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

命令的使用請先按esc進入命令模式!

vim filename        //開啟filename檔案 

:w //儲存檔案

:w vpser.net //儲存至vpser.net檔案

:q //退出編輯器,如果檔案已修改請使用下面的命令

:q! //退出編輯器,且不儲存

:wq //退出編輯器,且儲存檔案

:x //退出編輯器,且儲存檔案

修改:insert鍵

插入文字或行(vim命令模式下使用,執行下面命令後將進入插入模式,按esc鍵可退出插入模式)

a        //在當前游標位置的右邊新增文字 

i //在當前游標位置的左邊新增文字

a //在當前行的末尾位置新增文字

i //在當前行的開始處新增文字(非空字元的行首)

o //在當前行的上面新建一行

o //在當前行的下面新建一行

r //替換(覆蓋)當前游標位置及後面的若干文字

j //合併游標所在行及下一行為一行(依然在命令模式)

使用vim命令,進入命令列模式,執行如下操作即可。

:set ff=unix

:wq

正常模式下使用dd命令。

ctrl+u:向檔案首翻半屏;

ctrl+d:向檔案尾翻半屏;

ctrl+f:向檔案尾翻一屏;

ctrl+b:向檔案首翻一屏;

zz:命令模式下儲存當前檔案所做的修改後退出vi;

:行號:游標跳轉到指定行的行首;

:$:游標跳轉到最後一行的行首;

x或x:刪除乙個字元,x刪除游標後的,而x刪除游標前的;

d:刪除從當前游標到游標所在行尾的全部字元;

dd:刪除游標行正行內容;

ndd:刪除當前行及其後n-1行;

nyy:將當前行及其下n行的內容儲存到暫存器?中,其中?為乙個字母,n為乙個數字;

p:貼上文字操作,用於將快取區的內容貼上到當前游標所在位置的下方;

p:貼上文字操作,用於將快取區的內容貼上到當前游標所在位置的上方;

/字串:文字查詢操作,用於從當前游標所在位置開始向檔案尾部查詢指定字串的內容,查詢的字串會被加亮顯示;

?name:文字查詢操作,用於從當前游標所在位置開始向檔案頭部查詢指定字串的內容,查詢的字串會被加亮顯示;

a,bs/f/t:替換文字操作,用於在第a行到第b行之間,將f字串換成t字串。其中,「s/」表示進行替換操作;

a:在當前字元後新增文字;

a:在行末新增文字;

i:在當前字元前插入文字;

i:在行首插入文字;

o:在當前行後面插入一空行;

o:在當前行前面插入一空行;

:wq:在命令模式下,執行存檔退出操作;

:w:在命令模式下,執行存檔操作;

:w!:在命令模式下,執行強制存檔操作;

:q:在命令模式下,執行退出vi操作;

:q!:在命令模式下,執行強制退出vi操作;

:f:在命令模式下,用於顯示當前的檔名、游標所在行的行號以及顯示比例;

:set number:在命令模式下,用於在最左端顯示行號;

:set nonumber:在命令模式下,用於在最左端不顯示行號;

語法如下:

:[addr]s/源字串/目的字串/[option]
全域性替換命令:

:%s/源字串/目的字串/g
s表示替換操作,[addr]表示檢索範圍,省略時表示當前行,如下例項:

"1,20" :表示從第1行到20行;

"%":表示整個檔案,同"1,$";

". ,$" :從當前行到檔案尾;

[option] :表示操作型別:

g 表示全域性替換; 

c 表示進行確認

p 表示替代結果逐行顯示(ctrl + l恢復螢幕);

省略option時僅對每行第乙個匹配串進行替換;如果在源字串和目的字串中出現特殊字元,需要用」\」轉義 如 \t。

撤銷快捷鍵為u,在視窗模式下按u則會撤銷上一步操作。

恢復撤銷:ctrl + r

正常模式下,使用/會對輸入的字元進行全域性搜尋並高亮顯示:

這時使用n會跳到下乙個匹配的字元處。但是關閉檔案重新開啟仍舊提示高亮,如何取消呢?命令模式下使用:noh命令,如下所示:

linux下vi與vim編輯器的區別及使用方法

vi與vim一樣都是編輯器,不同的是vim更高階一些,可以理解是vi的高階版本。vi就像windows中的計事本,而vim則可以算的上是 office中的word。vi主要用來編輯一些檔案,vim是程式設計師的好工具。好的。下面在介紹一下vi的使用。1.使用vi進入一般模式 root linux v...

linux下vi命令大全

進入vi的命令 vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔案,並將游標置於第n行首 vi filename 開啟檔案,並將游標置於最後一行首 vi pattern filename 開啟檔案,並將游標置於第乙個與pattern匹配的串處 移動游標...

linux下vi命令大全

linux下vi命令大全,能掌握80 也即基本夠用了。進入vi的命令 vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔案,並將游標置於第n行首 vi filename 開啟檔案,並將游標置於最後一行首 vi pattern filename 開啟檔案,...