Linux中怎么使用vi文本編輯器

一.vi文本編輯器

配置文件是linux操作系統的顯著特征之一,其作用有點類似于windows操作系統中的注冊表,只不過注冊表是集中管理,而配置文件采用了分散的自由管理方式。

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 編輯器的輸入模式下,最后一行會顯示狀態提示信息“–INSERT–”。在末行模式下,可以配置vi編輯器的環境、保存文件、退出編輯器,并進行文件內容的查找、替換等操作。處于末行模式時,vi編輯器的最后一行會出現冒號”:”提示符。

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

Linux中怎么使用vi文本編輯器

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

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

通過執行單獨的“vi”命令,您可以進入v編輯器的命令模式,并查看相關版本信息,如下圖所示。但更常見的使用方法是指定要編輯的文件名作為參數,若該文件不存在,則vi根據該文件名稱打開一個新的空文件。

Linux中怎么使用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可跳轉到文件的最后一行。按下鍵盤上的特定按鍵,可以將光標移動到所選文件的某一行(將“二”用數字替代)。

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

Linux中怎么使用vi文本編輯器

?顯示行號后的vi編輯器界面顯示格式如下(每行開頭的數字即行號):

Linux中怎么使用vi文本編輯器

(3)復制、粘貼和刪除

刪除操作。

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

復制操作,使用按鍵命令Yy復制當前行整行的內容到剪貼板,使用#Yy的形式還可以復制從光標處開始的#行內容(其中“#”號用具體數字替換).復制的內容需要粘貼后才能使用。

粘貼操作。在vi編輯器中,前一次被刪除或復制的內容將會保存到剪切板緩沖區中,按p鍵即可將緩沖區中的內容粘貼到光標位置處之后,按P鍵則會粘貼到光標位置處之前。

(4)查找文件內容

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

Linux中怎么使用vi文本編輯器

(5)撤銷編輯及保存和退出

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

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

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

?(1)保存文件及退出vi編輯器

保存文件,對文件內容進行修改并確認以后,需要執行如下的“w”命令進行保存。

Linux中怎么使用vi文本編輯器

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

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

Linux中怎么使用vi文本編輯器

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

Linux中怎么使用vi文本編輯器

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

Linux中怎么使用vi文本編輯器

(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

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享