1. 程式人生 > >(值得收藏!)Vi 文本編輯器精講

(值得收藏!)Vi 文本編輯器精講

數字 bdd 跳轉 效果 linu 技術 文本操作 關鍵字 管理

簡介

vi 編輯器通常被簡稱為vi, vi 編輯器是Linux和Unix上最基本的文本編輯器,工作在字符模式下。它可以執行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據自己的需要對其進行定制,由於不需要圖形界面,vi是效率很高的文本編輯器。盡管在Linux上也有很多圖形界面的編輯器可用,但vi在系統和服務器管理中的功能是那些圖形編輯器所無法比擬的。

作用

創建或修改文本文件
維護 Linux系統中的各種配置文件

vi與vim關系

Vi:類Unix系統中默認的文本編輯器
vim:ⅵ 編輯器的增強版本,習慣上也稱為vi

一、ⅵ編輯器的工作模式

在ⅵ編輯界面中可以使用三種不同的工作模式,分別為命令模式、輸入模式和末行模式,在不同的模式中能夠對文件進行的操作也不相同。

● 命令模式:啟動ⅵ編輯器後默認進入命令模式。在該模式中主要完成如光標移動、字符串 查找,以及刪除、復制、粘貼文件內容等相關操作
● 輸入模式:該模式中主要的操作就是錄入文件內容,可以對文本文件正文進行修改或者添 加新的內容。處於輸入模式時,ⅵ編輯器的最後一行會出現“- INSERT-”的狀態提示息。
● 末行模式:該模式中可以設置ⅵ編輯環境、保存文件、退岀編輯器,以及對文件內容進行 查找、替換等操作。處於末行模式時,ⅵ編輯器的最後一行會出現冒號“:”提示符。

命令模式、輸入模式和末行模式是ⅵ編輯環境的三種狀態,通過不同的按鍵操作可以在不同的模式間進行切換。例如,從命令模式按冒號“”鍵可以進入末行模式,而如果按a、ⅰ、o等鍵可以進入輸入模式,在輸入模式、末行模式均可按Esc鍵返回至命令模式。

vi工作模式圖:

技術分享圖片

二、命令模式中的基本操作

溫馨提示:
在學習ⅵ編輯器的基本操作時,建議復制一個內容較多的系統配置文件進行練習,而不要直接去修改系統文件,以免發生失誤造成系統故障。例如,以下操作把系統配置文件/ etc/inittab復制為當前目錄下的 vitest.file文件,然後用ⅵ編輯器打開vitest.file文件進行編輯。

[root(@host~ ]# cp /etc/inittab /vitestfile #做備份
[root@host~ ] # vi vitest file

註意事項:

在ⅵ編輯器的命令模式中,可以輸入特定的按鍵(稱之為ⅵ操作命令,註意區別於Linuⅸ系統命令)進行操作。主要包括模式切換、光標移動、復制、刪除、粘貼、文件內容查找及保存和退出等操作,這裏只介紹最基本、最常用的按鍵命令。

1.模式切換

在命令模式中,使用a、i、o等按鍵可以快速切換至輸入模式,同時確定插入點的方式和位置,以便錄入文件內容。需要返回命令模式時,按Esc鍵即可。
常見的幾個模式切換鍵及其作用如下:

● a:在當前光標位置之後插入內容。
● A:在光標所在行的末尾(行尾)插入內容。
● i:在當前光標位置之前插入內容。
● l:在光標所在行的開頭(行首)插入內容。
● o:在光標所在行的後面插入一個新行。
● O:在光標所在行的前面插入一個新行。

2.移動光標

光標方向的移動: 直接使用鍵盤中的四個方向鍵↑、↓、←、→完成相應的光標移動

(1) 翻頁移動

● 使用 PageDown鍵或CmH+F組合鍵向下翻動一整頁內容
● 使用 PageUp鍵或CtH+B組合鍵向上翻動一整頁內容。
● 其中 PageDown鍵和Pge鍵同樣適用於ⅵi的輸入模式

(2)行內快速跳轉

● 按Home鍵或^鍵、數字0鍵將光標快速跳轉到本行的行首。
● 按End鍵或$鍵將光標快速跳轉到本行的行尾。
● 在上述按鍵操作中, PageDown、 PageUp、Home、End鍵及方向鍵同樣也可在ⅵ的輸 入 模式中使用

(3)行間快速跳轉

● 使用按鍵命令1G或者g可跳轉到文件內容的第1行。
● 使用按鍵命令G可跳轉到文件的最後一行。
● 使用按鍵命令#G可跳轉到文件中的第#行(其中“#”號用具體數字替換)。

為了便於查看行間跳轉效果,這裏可以先學習一下如何在ⅵ編輯器中顯示行號。只要切換到末行模式並執行“setm”命令即可顯示行號,執行“ set nonu”命令可以取消顯示行號。

:set nu

顯示行號後的ⅵ編輯器界面顯示格式如下所示(每行開頭的數字即行號)

1 inittab is no longer used when using systemd
2 #
3 # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM
……//省略部分內容

快捷查詢圖:

技術分享圖片

3.復制、粘貼和刪除

(1)刪除操作

● 使用x鍵或Del按鍵刪除光標處的單個字符。
● 使用按鍵命令dd刪除當前光標所在行,使用#d的形式還可以刪除從光標處開始的#行內容 (其 中“#”號用具體數字替換)
● 使用按鍵命令d^刪除當前光標之前到行首的所有字符。
● 使用按鍵命令心d$s刪除當前光標處到行尾的所有字符。

(2)復制操作

● 使用按鍵命令y復制當前行整行的內容到剪貼板,使用#yy的形式還可以復制從光標處開始的 #行內容(其中“#”號用具體數字替換)。復制的內容需要粘貼後才能使用。在ⅵ編輯器中,前一次被刪除或復制的內容將會保存到剪切板緩沖器中,按p鍵

(3)粘貼操作

即可將緩沖區中的內容粘貼到光標位置處之後,按P鍵則會粘貼到光標位置處之前在命令模式中,按/鍵後可以輸入指定的字符串,從當前光標處開始向後進行查找

快捷查詢圖:

技術分享圖片

4.查找文件內容

(如果按“?”鍵則向前查找)。完成查找後可以按n、N鍵在不同的查找結果中進行選擇。例如,輸入“/ initdefault”,按 Enter鍵後將查找出文件中的“ f initdefault”字符串並高亮顯示,光標自動移動至第一個查找結果處,按n鍵可以移動到下一個查找結果。

快捷查詢圖:

技術分享圖片

5.撤銷編輯及保存和退出

在對文件內容進行編輯時,有時候會需要對一些失誤的編輯操作進行撤銷,這時可以使用按鍵命令u、U鍵。其中,u鍵命令用於取消最近一次的操作,並恢復操作結果,可以多次重復按u鍵恢復已進行的多步操作:U鍵命令用於取消對當前行所做的所有編輯。
當需要保存當前的文件內容並退出ⅵ編輯器時,可以按ZZ命令。

快捷查詢圖:

技術分享圖片

三、末行模式中的基本操作

在命令模式中按冒號“:”鍵可以切換到末行模式,ⅵ編輯器的最後一行中將顯示“:”提示符,用戶可以在該提示符後輸入特定的末行命令,完成如保存文件、退出編輯器、打開新文件、讀取其他文件內容及字符串替換等豐富的功能操作。

1.保存文件及退出ⅵ編輯器

● 保存文件。對文件內容進行修改並確認以後,需要執行“:w”命令進行保存

:w

若需要另存為其他文件,則需要指定新的文件名,必要時還可以指定文件路徑。
例如,執行“ w/root/newfile”操作將把當前編輯的文件另存到/roo目錄下,文件名為 newfile

:w/root/newfile

退出編輯器。需要退出ⅵ編輯器時,可以執行“q”命令。若文件內容已經
修改卻沒有保存,僅使用“:q”命令將無法成功退出,這時需要使用!”
命令強行退出(不保存即退出)

:q!

● 保存並退出。既要保存文件又要退出ⅵ編輯器可以使用一條末行命令“兩”
或“:x”實現,其效果與命令模式中的ZZ命令相同

:wq

或者

:x

快捷查詢圖:

技術分享圖片

2.打開新文件或讀入其他文件內容

● 打開新的文件進行編輯。在當前ⅵ編輯器中,執行“:e新的文件”形式的末行命令可以編輯(Edit)新文件。例如,執行“:e~ /installlog”操作將直接打開當前用戶宿主目錄中的 install log文件進行編輯

:e~ /install.log

● 在當前文件中讀入其他文件內容。執行“x其他文件”形式的末行命令可以讀入(Read)其他文件中的內容,並將其復制到當前光標所在位置。例如,執行“r/ etc/filesystems”操作將把系統文件/ etc/filesystems中的內容復制到當前文件中

:r /etc/filesystems

快捷查詢圖:

技術分享圖片

3.替換文件內容

在ⅵ編輯器的末行模式中,能夠將文件中特定的字符串替換成新的內容,當需要大批量修改同一內容時,使用替換功能將大大提高編輯效率。使用替換功能時的末行命令格式如下所示:

:[替換範圍]sub/舊的內容/新的內容[/g]

在上述替換格式中,主要關鍵字為sub( Substitute,替換),也可以簡寫為s。替換範圍是可選部分,默認時只對當前行內的內容進行替換,一般可以表示為以下兩種形式。

● %:在整個文件內容中進行查找並替換。
● n,m:在指定行數範圍以內的文件內容中進行查找並替換。
● 最末尾的“g”部分也是可選內容,表示對替換範圍內每一行的所有匹配結果都進行替換,省 略“g”時將只替換每行中的第一個匹配結果。

例如,若要將文檔中第5~15行的“initdefault”字符串替換為“ DEFAULT”,可以執行以下操作:

:5,15 sub /initdefault/DEFAULT/g

當需要對整個文檔範圍進行査找替換操作時,需要使用“%”符號表示全部。例如,以下操作將把當前文件中所有的“ initdefault‘”字符串替換為“ bootdefault”。

:% sub /initdefault/bootdefault/g

如果要對每個替換動作提示用戶進行確認,可以在替換命令末尾加入“c”命令,如下所示:

:%o sub /initdefault/bootdefault/c

快捷查詢圖:

技術分享圖片

總結

● ⅵ、vim是一個全屏幕的文件編輯器, 包括命令模式、輸入模式、末行模式、三種使用狀 態
● !vim 命令可以直接返回上一次編輯處
● 使用dd+p鍵可以實現剪切、粘貼功能
● 使用dw可刪除整個單詞
● 編輯系統配置文件時,記得先備份!
● 建議使用vim編輯器,裏面有顏色區分,一般編輯錯誤會顯示紅色
● 要想熟練使用vi文本編輯器,平時多用,多操作才能記住這些命令

(值得收藏!)Vi 文本編輯器精講