首頁 > 軟體

Linux 使用vi文字編輯器詳解

2023-03-07 06:04:24

 前言

本章將會講解使用vi文字編輯器

一.vi文字編輯器

組態檔是Linux作業系統的顯著特徵之一,其作用有點類似於Windows作業系統中的登入檔,只不過登入檔是集中管理,而組態檔採用了分散的自由管理方式。本節將學習如何使用Linux字元操作介面中的文字編輯器——vi,以便更好地管理和維護系統中的各種組態檔。

1.使用vi文字編輯器

vi是一個功能強大的全螢幕幕文字編輯工具,一直以來都作為類UNIX作業系統的預設文字編輯器,vim是vi文字編輯器(簡稱vi編輯器)的增強版本,在vi編輯器的基礎上擴充套件了很多實用的功能,但是習慣上也將vim稱為vi,為了使用方便,可以設定一個命令別名,將vi指向vim程式(本文中以vim程式為例)具體操作如下:

[root@localhost ~]# alias vi='/usr/bin/vim'
[root@localhost ~]# which -a vi vim

2.vi編輯器的工作模式

vi編輯器是工作在字元終端環境下的全螢幕幕編輯器,因此編輯介面相對比較簡單,沒有為使用者提供滑鼠操作和選單系統,而是通過按鍵命令實現相應的編輯和操作功能,在v編輯介面中可以使用三種不同的工作模式,即命令模式,輸入模式和末行模式,在不同的模式中能夠對檔案進行的操作也不相同。

命令模式:啟動vi編輯器後預設進入命令模式。該模式中主要完成如遊標移動、字串查詢,以及刪除、複製、貼上檔案內容等相關操作。輸入模式:該模式中主要的操作就是錄入檔案內容,可以對文字檔案正文進行修改或新增新的內容。處於輸入模式時,vi編輯器的最後一行會出現“--NSERT--”的狀態提示資訊。末行模式:該模式中可以設定vi編輯環境、儲存檔案、退出編輯器,以及對檔案內容進行查詢、替換等操作。處於末行模式時,vi編輯器的最後一行會出現冒號”:”提示符。

命令模式、輸入模式和末行模式是vi編輯環境的三種狀態,通過不同的按鍵操作可以在不同的模式間進行切換。例如,從命令模式按:(冒號)鍵可以進入末行模式,按a,i,o等鍵可以進入輸入模式:在輸入模式、末行模式均可按Esc鍵返回命令模式,如圖所示。

 認識了vi編輯器的不同編輯模式(狀態)以後,下面分別介紹在命令模式、末行模式中的常見操作方法(輸入模式用於錄入文字內容,不做特別介紹)。

3.命令模式中的基本操作

執行單獨的“vi”命令即可進入v編輯器的命令模式,還會顯示相關版本資訊,如圖所示。但更常見的使用方法是指定要編輯的檔名作為引數,若該檔案不存在,則vi根據該檔名稱開啟一個新的空檔案。

 在學習vi編輯器的基本操作時,建議複製一個內容較多的系統組態檔進行練習,而不要直接去修改系統檔案,以免發生失誤造成系統故障。

例如以下操作把系統組態檔/etc/yum.conf複製為當前目錄下的vitest.file檔案,然後用vi編輯器開啟vitest.file檔案進行編輯。

[root@localhost ~]# cp /etc/yum.conf ./vitest.file
[root@localhost ~]# vi vitest.file

在vi編輯器的命令模式中,可以輸入特定的按鍵(稱為vi操作命令注意區別於Linux作業系統命令)進行操作,主要包括模式切換、遊標移動、複製、刪除、貼上、檔案內容查詢及儲存和退出等操作,這裡只介紹一些最基本且常用的按鍵命令。

(1)模式切換

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

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

(2)移動遊標

遊標方向的移動,直接按↑,↓,←,→一西個方向鍵完成相應的遊標移動。

題頁移動

按Page Dewn鍵或Crl+F組合鍵向下期動一整頁內容。
技Pagt lip或Cr1+8組合鍵向上翻動一整頁內容。

行內快速跳轉

按Horme鍵成“鍵,散字0鍵將元標快速鵬轉到本行的行首。接End鍵或1鍵將遊標快速跳轉到本行的行尾。在上述按鍵操作中,PageDown,Pagn Up,homm,End及方向鍵同樣也可在w的輸入模式中使用。

入行間快速跳轉

使用按鍵命令1G或者0可跳轉到檔案內容的第1行。使用按鍵命令G可跳轉到檔案的最後一行。使用按鍵會令#G可院轉到檔案中的第#行(其中“二”號用高體數位替換)。

為了便於檢視行間期轉效果,這裡先學習如何在v編輯器中是示行號,只要切換到末行模式並
執行如下的”set cu”命令即可顯示行號,執行"set nonu"命令可以取消量示行號.

 顯示行號後的vi編輯器介面顯示格式如下(每行開頭的數位即行號):

(3)複製、貼上和刪除

刪除操作。

按×鍵或Delete鍵刪除遊標處的單個字元。使用按鍵命令dd刪除當前遊標所在行,使用#dd的形式還可以刪除從遊標處開始的#行內容(其中“#”號用具體數位替換)。使用按鍵命令d刪除當前遊標之前到行首的所有字元。使用按鍵命令ds刪除當前遊標處到行尾的所有字元。

複製操作,使用按鍵命令Yy複製當前行整行的內容到剪貼簿,使用#Yy的形式還可以複製從遊標處開始的#行內容(其中“#”號用具體數位替換).複製的內容需要貼上後才能使用。

貼上操作。在vi編輯器中,前一次被刪除或複製的內容將會儲存到剪下板緩衝區中,按p鍵即可將緩衝區中的內容貼上到遊標位置處之後,按P鍵則會貼上到遊標位置處之前。

(4)查詢檔案內容

在命令模式中,按/鍵後可以輸入指定的字串,從當前遊標處開始向後進行查詢(按?鍵則向前查詢).完成查詢後可以按n、N鍵在不同的查詢結果中進行選擇,例如,輸入“/yum”,按Enter鍵後將查詢出檔案中的“yum”字串並高亮顯示,遊標自動移動至第一個查詢結果處,按n鍵可以移動到下一個查詢結果,如圖所示。

(5)復原編輯及儲存和退出

在對檔案內容進行編輯時,有時候需要對一些失誤的編輯操作進行復原,這時可以使用按鍵u,U鍵,其中,u鍵命令用於取消最近一次的操作,並恢復操作結果,可以多次重複按υ鍵恢復已進行的多步操作;U鍵命令用於取消對當前行所做的所有編輯。當需要儲存當前的檔案內容並退出vi編輯器時,可以使用按鍵命令ZZ。

4.末行模式中的基本操作

在命令模式中按:鍵可以切換到末行模式,vi編輯器的最後一行中將顯示”:提示符,使用者可以在該提示符後輸入特定的末行命令,完成如儲存檔案,退出編輯器,開啟新檔案,讀取其他檔案內容及字串替換等豐富的功能操作。

 (1)儲存檔案及退出vi編輯器

儲存檔案,對檔案內容進行修改並確認以後,需要執行如下的“w”命令進行儲存。

若需要另存為其他檔案,則需要指定新的檔名,必要時還可以指定檔案路徑。

例如,執行如下的“:w/root/newfile操作將把當前編輯的檔案另存到/root 目錄下,檔名為newfile. 

退出編輯器。需要退出vi編輯器時,可以執行“:q命令,若檔案內容已經修改卻沒有儲存,則僅使用”;q”命令將無法成功退出,這時需要使用如下的”q!”命令強行退出(不儲存即退出)。

儲存並退出。既要儲存檔案又要退出vi編輯器可以使用一條末行命令“:wq”或“:x”實現,其效果與命令模式中的ZZ命令相同,具體操作如下: 

(2)開啟新檔案或讀入其他檔案內容 

開啟新的檔案進行編輯。在當前vi編輯器中,執行”:e新的檔案”形式的末行命令可以編輯(Edit)新檔案。

例如,執行如下的‘:e~/initial-setup-ks.cfg”操作將直接開啟當前使用者宿主目錄中的initial-setup-ks.cfg檔案進行編輯。

:e ~/initial-setup-ks.cfg

在當前檔案中讀入其他檔案內容,執行“r其他檔案”形式的末行命令可以讀入(Read)其他檔案中的內容,並將其複製到當前遊標所在位置。

例如,執行如下的“r/etc/filesystems操作將把系統檔案/etc/filesystems中的內容複製到當前檔案中。

:r /etc/filesystems

 (3)替換檔案內容

在vi編輯器的末行模式中,能夠將檔案中特定的字串替換成新的內容,當需要大批次修改同一內容時,使用替換功能將大大提高編輯效率,使用替換功能時的末行命令格式如下:

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

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

%:在整個檔案內容中進行查詢並替換。n.m;在指定行數範圍內的檔案內容中進行查詢並替換。

替換格式中最末尾的/g部分也是可選內容,表示對替換範圍內每一行的所有匹配結果都進行替換,省略/g時將只替換每行中的第一個匹配結果。

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

:5,15 s /initdefault/DEFAULT/g

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

:% s /initdefault/bootdefault/g

到此這篇關於Linux 使用vi文字編輯器詳解的文章就介紹到這了,更多相關Linux 使用vi文字編輯器內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com