VI 編輯器的使用

2021-04-02 11:02:31 字數 4156 閱讀 4097

·vi 的工作模式

·編輯模式

·插入模式

·命令模式

·shell 切換

·選項設定

·vim 和 gvim 的高階特色

1.1 vi 的工作模式

vi 在初始啟動後首先進入編輯模式,這時使用者可以利用一些預先定義的按鍵來移動游標、刪除文字、複製或貼上文字等。這些按鍵均是普通的字元,例如 l 是向右移動游標,相當於向右箭頭鍵,k 是向下移動游標,相當於向下箭頭鍵。在編輯模式下,使用者還可以利用一些特殊按鍵選定文字,然後再進行刪除、或複製等操作。

當使用者在編輯模式下鍵入 i, a, o 等命令之後,可進入插入模式;鍵入 : 可進入命名模式。在插入模式下,使用者隨後輸入的,除 esc 之外的任何字元均將被看成是插入到編輯緩衝區中的字元。按 esc 之後,從插入模式切換到編輯模式。

在命令模式,vi 將把游標挪到螢幕的最下方,並在第乙個字元的位置顯示乙個 :(冒號)。這時,使用者就可以鍵入一些命令。這些命令可用來儲存檔案、讀取檔案內容、執行 shell 命令、設定 vi 引數、以正規表示式的方式查詢字串或替換字串等。

1.2 編輯模式

1.3 插入模式

1. 進入插入模式

在編輯模式下正確定位游標之後,可用以下命令切換到插入模式:

i 在游標左側輸入正文

a 在游標右側輸入正文

o 在游標所在行的下一行增添新行

o 在游標所在行的上一行增添新行

i 在游標所在行的開頭輸入正文

a 在游標所在行的末尾輸入正文

上面介紹了幾種切換到插入模式的簡單方法。另外還有一些命令,它們允許在進入插入模式之前首先刪去一段正文,從而實現正文的替換。這些命令包括:

s 用輸入的正文替換游標所指向的字元

ns 用輸入的正文替換游標右側 n 個字元

cw 用輸入的正文替換游標右側的字

ncw 用輸入的正文替換游標右側的 n 個字

cb 用輸入的正文替換游標左側的字

ncb 用輸入的正文替換游標左側的 n 個字

cd 用輸入的正文替換游標的所在行

ncd 用輸入的正文替換游標下面的 n 行

c$ 用輸入的正文替換從游標開始到本行末尾的所有字元

c0 用輸入的正文替換從本行開頭到游標的所有字元

2. 退出插入模式

退出插入模式的方法是,按 esc 鍵或組合鍵ctrl+[ 。

1.4 命令模式

在 vi 的命令模式下,可以使用複雜的命令。在編輯模式下鍵入「:」,游標就跳到螢幕最後一行,並在那裡顯示冒號,此時已進入命令模式。命令模式又稱「末行模式」,使用者輸入的內容均顯示在螢幕的最後一行,按回車鍵,vi 執行命令。

1. 退出命令

在編輯模式下可以用 zz 命令退出 vi 編輯程式,該命令儲存對正文所作的修改,覆蓋原始檔案。如果只需要

退出編輯程式,而不打算儲存編輯的內容,可用下面的命令:

: q 在未作修改的情況下退出

: q! 放棄所有修改,退出編輯程式

2. 行號與檔案

編輯中的每一行正文都有自己的行號,用下列命令可以移動游標到指定行:

: n 將游標移到第 n 行命令模式下,可以規定命令操作的行號範圍。數值用來指定絕對行號;字元「.」表示游標所在行的行號;字元

符「$」表示正文最後一行的行號;簡單的表示式,例如「.+5」表示當前行往下的第 5 行。例如:

:345 將游標移到第 345 行

:345w file 將第 345 行寫入 file 檔案

:3,5w file 將第 3 行至第 5 行寫入 file 檔案

:1,.w file 將第 1 行至當前行寫入 file 檔案

:.,$w file 將當前行至最後一行寫入 file 檔案

:.,.+5w file 從當前行開始將 6 行內容寫入 file 檔案

:1,$w file 將所有內容寫入 file 檔案,相當於 :w file 命令

在命令模式下,允許從檔案中讀取正文,或將正文寫入檔案。例如:

:w 將編輯的內容寫入原始檔案,用來儲存編輯的中間結果

:wq 將編輯的內容寫入原始檔案並退出編輯程式(相當於 zz 命令)

:w file 將編輯的內容寫入 file 檔案,保持原有檔案的內容不變

:a,bw file 將第 a 行至第 b 行的內容寫入 file 檔案

:r file 讀取 file 檔案的內容,插入當前游標所在行的後面

:e file 編輯新檔案 file 代替原有內容

:f file 將當前檔案重新命名為 file

:f 列印當前檔名稱和狀態,如檔案的行數、游標所在的行號等

3. 字串搜尋

給出乙個字串,可以通過搜尋該字串到達指定行。如果希望進行正向搜尋,將待搜尋的字串置於兩個「/」之間;如果希望反向搜尋,則將字串放在兩個「?」之間。例如:

:/str/ 正向搜尋,將游標移到下乙個包含字串 str 的行

:?str? 反向搜尋,將游標移到上乙個包含字串 str 的行

:/str/w file 正向搜尋,並將第乙個包含字串 str 的行寫入 file 檔案

:/str1/,/str2/w file 正向搜尋,並將包含字串 str1 的行至包含字串str2 的行寫入 file 檔案

4. 正文替換

利用 :s 命令可以實現字串的替換。具體的用法包括:

:s/str1/str2/ 用字串 str2 替換行中首次出現的字串 str1

:s/str1/str2/g 用字串 str2 替換行中所有出現的字串 str1

:.,$ s/str1/str2/g 用字串 str2 替換正文當前行到末尾所有出現的字串 str1

:1,$ s/str1/str2/g 用字串 str2 替換正文中所有出現的字串 str1

:g/str1/s//str2/g 功能同上從上述替換命令可以看到:g 放在命令末尾,表示對搜尋字串的每次出現進行替換;不加 g,表示只對搜尋字串的首次出現進行替換;g 放在命令開頭,表示對正文中所有包含搜尋字串的行進行替換操作。

5. 刪除正文

在命令模式下,同樣可以刪除正文中的內容。例如:

:d 刪除游標所在行

:3d 刪除 3 行

:.,$d 刪除當前行至正文的末尾

:/str1/,/str2/d 刪除從字串 str1 到 str2 的所有行

6. 恢復檔案

vi 在編輯某個檔案時,會另外生成乙個臨時檔案,這個檔案的名稱通常以 . 開頭,並以 .swp 結尾。vi 在

正常退出時,該檔案被刪除,若意外退出,而沒有儲存檔案的最新修改內容,則可以使用恢復命令:

:recover 恢復檔案

也可以在啟動 vi 時利用 -r 選項。

1.5 選項設定

為控制不同的編輯功能,vi 提供了很多內部選項。利用 :set 命令可以設定選項。基本語法為:

:set option 設定選項 option

常見的功能選項包括:

autoindent 設定該選項,則正文自動縮排

ignorecase 設定該選項,則忽略規則表示式中大小寫字母的區別

number 設定該選項,則顯示正文行號

ruler 設定該選項,則在螢幕底部顯示游標所在行、列的位置

tabstop 設定按 tab 鍵跳過的空格數。例如 :set tabstop=n,n 預設值為 8

mk 將選項儲存在當前目錄的 .exrc 檔案中

1.6 shell 切換

在編輯正文時,利用 vi 命令模式下提供的 shell 切換命令,無須退出 vi 即可執行 linux 命令,十分方便。語法格式為:

:! command 執行完 shell 命令 command 後回到 vi

另外,在編輯模式下,鍵入 k ,可命令 vi 查詢游標所在單詞的手冊頁,相當於執行 man命令。

1.7 vim 和 gvim 的高階特色

vim 代表 vi improved,如同其名稱所暗示的那樣,vim 作為標準 unix 系統 vi 編輯器的提高版而存在。 vim 除提供和 vi 編輯器一樣強大的功能外,還提供有多級恢復、命令列歷史以及命令及檔名補全等功能。

gvim 是 vi 的 x window 版本,該版本支援滑鼠選中,一些高階游標移動功能,並且帶有選單和工具按鈕。

vi 編輯器的使用

1 vi編輯器開啟檔案。例 vi install.log 開啟install.log檔案 2 vi的三種狀態 命令模式 主要對游標進行操作 編輯模式 末行模式 帶 的 輸入i,在游標的前面插入字元。按esc鍵回到命令模式。輸入i,在行首插入字元。輸入a,在游標後插入 輸入a,在行末插入 輸入o,在游...

vi 編輯器的使用

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

vi編輯器的使用

命令模式 是vi的初始方式也是一般方式。用於執行命令,但不能輸入文字內容。大部分的命令都是在此模式下執行的 插入模式 用於文字內容的輸入 末行命令模式 用於執行存檔命令 退出命令 vi設定命令等 下面特意保留esc,這個太重要了。vi在平時很少用,用的時候老是忘記怎麼從乙個模式轉到另乙個模式,在那瞎...