vi與vim的區別以及常用命令

2021-10-04 06:35:37 字數 4073 閱讀 3404

一、vi與vim的區別

1、多級撤消

在vi編輯器中,按u只能撤消上次命令,而在vim裡可以無限制的撤消。

2、易用性

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

3、語法加亮

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

如下兩圖對比:

4、視覺化操作

vim不僅可以在終端執行,也可以執行於windows、 mac os、 windows。

5、對vi完全相容

可以把vim當成vi來使用。

二、vi模式

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

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

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

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

3、末行模式 (last line mode/指令列命令模式)

末行模式也稱轉義模式。

vi和ex編輯器的功能是相同的,二者主要區別是使用者介面。在vi中,命令通常是單個鍵,例如i、a、o等;而在ex中,命令是以按回車鍵結束的正文行。vi有乙個專門的「轉義」命令,可訪問很多面向行的ex命令。

在命令模式下,使用者按「:」鍵即可進入末行模式下,此時vi會在顯示視窗的最後一行(通常也是螢幕的最後一行)顯示乙個「:」作為末行模式的提示符,等待使用者輸入命令。多數檔案管理命令都是在此模式下執行的(如把編輯緩衝區的內容寫到檔案中等)。末行命令執行完後,vi自動回到命令模式。

三、vim模式

1、正常模式 (normal-mode)

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

2、插入模式 (insert-mode)

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

3、命令模式 (command-mode)

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

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

4、可視模式 (visual-mode)

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

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

四、vi與vim的常用命令

注:由於vi與vim在命令上幾乎相同,所以這裡那vim為例。

1、模式轉換

正常–>輸入:以下這幾個引數實現的功能都是轉為輸入模式,只不過轉換後的游標所在的位置不同(感興趣可以試一試,雖然意義不大!)

i:在當前游標所在字元的前面,轉為輸入模式;

a:在當前游標所在字元的後面,轉為輸入模式;

o:在當前游標所在行的下方,新建一行,並轉為輸入模式;

i:在當前游標所在行的行首,轉為輸入模式;

a:在當前游標所在行的行尾,轉為輸入模式;

o:在當前游標所在行的上方,新建一行,並轉為輸入模式;

輸入--

>正常:

esc正常--

>末行:

:(英文冒號)

末行--

>正常:

esc,esc

注意:輸入模式和末行模式之間不能直接切換。2、關閉檔案(末行模式)

:q        退出;

:q! 不儲存退出;

:w 儲存;

:w! 強行儲存;

:wq 儲存退出

:wq! 強制儲存並退出

注意:在正常模式下按組合鍵shift zz可以儲存並退出3、移動游標(正常模式)

1)逐字元移動:

h: 左;

l: 右;

j: 下;

k: 上;

#h: 移動#個字元

2)以單詞為單位移動

w: 移至下乙個單詞的詞首;

e: 跳至當前或下乙個單詞的詞尾;

b: 跳至當前或前乙個單詞的詞首;

#w: 移動#個單詞

3)行內跳**

0: 絕對行首;

^: 行首的第乙個非空白字元;

$: 絕對行尾

4)行間跳轉

#g:跳轉至第#行;

gg: 第一行;

g:最後一行

5)末行模式

.: 表示當前行;

$: 最後一行;

#:第#行;

+#: 向下的#行

4、翻屏(正常模式)
ctrl+f: 向下翻一屏;

ctrl+b: 向上翻一屏;

ctrl+d: 向下翻半屏;

ctrl+u: 向上翻半屏

5、複製字元
1)正常模式

複製:yy:複製當前行

nyy:複製當前行至下面的n行

貼上:p:貼上到游標的後面

p:貼上到游標的前面

2)可視模式

複製:y:複製當前行

ny:複製當前行至下面的n行

貼上:p:貼上到游標的後面

p:貼上到游標的前面

6、刪除字元(正常模式)
x: 刪除游標所在處的單個字元;

#x: 刪除游標所在處及向後的共#個字元;

d$或d:從當前游標處刪除至行尾;

d^:從當前游標處刪除之行首;

dd: 刪除當前游標所在行;

#dd: 刪除包括當前游標所在行在內的#行;

注:dd相當於剪下操作,如果你dd之後按p或者p可以進行貼上。7、替換字元

r:替換單個字元(按完r在按你要替換的字元即可)

r:替換多個字元(從你要替換的位置開始替換,直至你退出正常模式)

9、將另外乙個檔案(/path/sunhui.txt)的內容填充在當前資料夾中

:r   /path/sunhui.txt :填充到當前檔案所在游標的後面
10、修改vim配置檔案

vim   ~

/.vimrc:修改當前使用者的vim配置檔案

vim /etc/vimrc:修改所有使用者的vim配置檔案

例:在當前使用者的vim配置檔案中新增顯示行數的命令

vim ~

/.vimrc:在末行新增 set nu 即可

11、拓展(末行模式)
1)顯示或取消顯示行號

:set nu //顯示

:set number //顯示

:set nonu //取消

2)設定語法高亮

:syntax on //開啟

:syntax off //關閉

3)分屏

:vsp ***.x //將兩個檔案垂直分屏

:ctrl+w w //切屏

注:該特性當前有效,如果想要永久有效需修改配置檔案

LINUX中VI與VIM的常用命令

注 由於vi與vim在命令上幾乎相同,所以這裡那vim為例。1 模式轉換 正常 輸入 以下這幾個引數實現的功能都是轉為輸入模式,只不過轉換後的游標所在的位置不同 感興趣可以試一試,雖然意義不大!輸入 正常 正常 末行 末行 正常 注意 輸入模式和末行模式之間不能直接切換。2 關閉檔案 末行模式 注意...

vi常用命令

1.在進行編寫 時,在格式對起上很有用 第一行,vim使用自動對起,也就是把當前行的對起格式應用到下一行 第二行,依據上面的對起格式,智慧型的選擇對起方式,對於類似c語言編寫上很有用 set autoindent set smartindent c語言對齊方式,最好用它 set cindent 2....

vi常用命令

一 vi的三種模式 3 命令列模式 從一般模式按下 時進入命令列模式。注意 編輯模式和命令列模式不能互相切換,只能通過一般模式切換。二 三種模式常用按鍵說明 1 一般模式下的可用按鈕 最常用的 移動游標 移動游標 上下左右鍵 螢幕向上翻頁 pageup或者ctrl b 螢幕向下翻頁 pagedown...