當前位置:編程學習大全網 - 圖片素材 - vi 和 vim 的區別?

vi 和 vim 的區別?

作為軟件測試工程師,不可避免需要操作到 Linux 系統,vi/vim 是 Linux 系統內置的不可或缺的文本編輯命令,VIM 是 vi 的加強版本,兼容 vi 的所有指令,不僅能編輯文本,而且還具有 shell 程序編輯的功能,可以不同顏色的字體來辨別語法的正確性,極大方便了程序的設計和編輯性。

vi/vim 三種模式:命令模式/壹般模式(command mode)、插入模式(input mode)、末行模式/指令命令模式(last line mode)。

命令模式/壹般模式:

剛剛啟動 vi/vim,則進入壹般模式,可以移動光標、復制粘貼、刪除字符等。此狀態下鍵盤輸入會被識別為命令操作,常用到的包括 i(切換到插入模式),x(刪除當前光標所在字符),:(切換到命令行模式)。

插入模式:

在壹般模式下按下鍵盤i, I, o, O, a, A進入插入模式,屏幕的左下方會出現--INSERT--的字樣,表示當前模式下,用戶可以編輯修改文本的內容。按下Esc則退出編輯模式。

末行模式/指令命令模式:

在壹般模式下按下鍵盤: / ?任意壹個,光標移動到最下面壹行,進入末行模式。可以查找數據、替換、可保存文件、退出 vi、顯示行號等操作。

1、vi lemon.txt:

打開 lemon.txt 文件進入壹般模式;當 lemon.txt 不存在則會創建 lemon.txt 文件,保存退出後,則新建成功。

2、移動光標:

進入壹般模式後,可在鍵盤輸入以下,移動光標位置。

[Ctrl]+[f]:光標向下移動壹頁。

[Ctrl]+[b]:光標向上移動壹頁。

0:移動到光標所在這壹行的最前面字符處。

$:移動到光標所在這壹行的最後面字符處。

[PgUp]/[PgDn]/[Home]/[End]按鍵:從當前光標處往上、下、左、右移動。

G:移動到這個文件的最後壹行。

g:移動到這個文件的第壹行。

N[Enter]:N 為數字,光標向下移動 N 行。

3、刪除、復制和粘貼:

進入壹般模式後,可在鍵盤輸入以下,實現刪除、復制、粘貼。

x,X:在壹行字中,x 為向後刪除壹個字符(相當於[Del]鍵),X 為向前刪除壹個字符(相當於[Backspace])。

dd:刪除光標所在的壹整行。

ndd:刪除光標所在的向下 n 行。

yy:復制光標所在的壹行。

nyy:復制光標所在的向下 n 行。

p,P:p 為將已復制的內容在光標的下壹行粘貼,P 則為粘貼在光標的上壹行。

4、壹般模式切換到插入模式:

進入壹般模式後,可在鍵盤輸入以下,切換到插入模式,進行文件編輯操作。

i,I:進入插入模式,i 為從目前光標所在處插入。I 為在目前所在行的第壹個非空格字符處開始插入。

a,A:進入插入模式。a 為從目前光標所在處的下壹個字符處開始插入。A 為從所在行的最後壹個字符處開始插入。

o,O:進入插入模式。o 為在下壹行插入。O 為在上壹行插入。

5、查找和替換:

按 vi 進入文件後,可進行以下操作進行查找和替換

/lemon:向下尋找壹個名稱為 lemon 的字符串。

?lemon:向上尋找壹個名稱為 lemon 的字符串。

:n1,n2s/lemon1/lemon2/g:在第 n1 行和 n2 行之間尋找 lemon1 這個字符串,並且將其替換為 lemon2.

:1,$s/lemon1/lemon2/g:從第壹行到最後壹行尋找 lemon1 這個字符串,並且將其替換為 lemon2.

:1,$s/lemon1/lemon2/gc:從第壹行到最後壹行尋找 lemon1 這個字符串,並且將其替換為 lemon2.且在替換前顯示提示字符給用戶確認是否需要替換。

6、編輯數據後切換到末行模式:

進行文件編輯後,按鍵盤Esc退出編輯模式,並可以進行以下操作,

:w:將編輯的數據寫入到硬盤中。

:q:不保存退出 vi;後面加!為強制退出 vi。

:wq:保存後退出 vi。後面加!為強制保存後退出 vi。

VIM 是 vi 的升級版本,除了兼容 vi 的所有指令,VIM 還具有壹些新的特性,主要體現在:

多級撤銷

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

易用性

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

語法加亮

VIM 可以用不同的顏色加亮顯示代碼。

可視化操作

VIM 不僅可以在終端運行,也可以運行於 x window、 mac os、 windows。

  • 上一篇:張紫妍(中國女演員)
  • 下一篇:求壹部男女主人公相愛六年的電影
  • copyright 2024編程學習大全網