嵌入式Linux編輯器vi的使用

2021-06-12 11:29:23 字數 3913 閱讀 1176

vi是linux系統的第乙個全螢幕互動式編輯工具。它從誕生至今一直得到廣大使用者的青睞,歷經數十年後仍然是人們主要使用的文字編輯工具,足見其生命力之強,其強大的編輯功能可以同任何乙個最新的編輯器相媲美。

雖然用慣了windows中的word等編輯器的讀者在剛剛接觸vi時或多或少會有些不適應,但使用過一段時間後,就能感受到它的方便與快捷。

小知識:linux系統提供了乙個完整的編輯器家族系列,如ed、ex、vi和emacs等,按功能它們可以分為兩大類:行編輯器(ed、ex)和全螢幕編輯器(vi、emacs)。行編輯器每次只能對一行進行操作,使用起來很不方便。而全螢幕編輯器可以對整個螢幕進行編輯,使用者編輯的檔案直接顯示在螢幕上,從而克服了行編輯的那種不直觀的操作方式,便於使用者學習和使用,具有強大的功能。

vi的基本模式

vi編輯器具有3種工作模式,分別是命令列模式(command mode)、插入模式(insert mode)和底行模式(last line mode),各模式的功能區分如下。

1.命令列模式(command mode)

在該模式下使用者可以輸入命令來控制螢幕游標的移動,字元、單詞或行的刪除,移動複製某區段,也可以進入到底行模式或者插入模式下。

2.插入模式(insert mode)

使用者只有在插入模式下才可以進行字元輸入,使用者按[esc]鍵可回到命令列模式下。

3.底行模式(last line mode)

不過在一般使用時,人們通常把vi簡化成兩個模式,即將底行模式(last line mode)也歸入命令列模式中。

vi的基本操作

1.進入與離開vi

進入vi可以直接在系統提示符下鍵入vi <文件名稱>,vi可以自動載入所要編輯的文件或是建立乙個新的文件。如在shell中鍵入vi hello.c(新建文件)即可進入vi畫面。如圖1.1所示。

進入vi後螢幕最左邊會出現波浪符號,凡是有該符號就代表該行目前是空的。此時進入的是命令列模式。

要離開vi可以在底行模式下鍵入「:q」(不儲存離開),「:wq」(儲存離開)則是存檔後再離開(注意冒號)。如圖1.2所示。

圖1.1 在vi中開啟/新建文件

圖1.2 在vi中退出文件

2.vi中3種模式的切換

vi的使用中3種模式的切換是最為常用的,在處理的過程中,讀者要時刻注意螢幕左下方的提示。在插入模式下,左下方會有「插入」字樣,而在命令列或底行模式下則無提示。

(1)命令列模式、底行模式轉為插入模式

在命令列模式或底行模式下轉入到插入模式有3種方法,如表1.1所示。

命令列模式轉到插入模式

表1.1

在這裡,最常用的是「i」,在轉入插入模式後如圖1.3所示。

圖1.3 命令模式轉入插入模式

(2)插入模式轉為命令列模式、底行模式

從插入模式轉為命令列模式、底行模式比較簡單,只需使用[esc]鍵即可。

(3)命令列模式與底行模式轉換

命令列模式與底行模式間的轉換不需要其他特別的命令,而只需要直接鍵入相應模式中的命令鍵即可。

3.vi的刪除、修改與複製

在vi中進行刪除、修改都可以在插入模式下使用鍵盤上的方向鍵及[delete]鍵,另外,vi還提供了一系列的操作指令可以大大簡化操作。

這些指令記憶起來比較複雜,希望讀者能夠配合操作來進行實驗。以下命令都是在命令列模式下使用的。

表1.2所示為vi的刪除、修改與複製命令。

vi的刪除、修改與複製命令

表1.2

4.vi的游標移動

由於許多編輯功能都是通過游標的定位來實現的,因此,掌握vi中游標移動的方法很重要。雖然使用方向鍵也可以實現vi的操作,但vi的指令可以實現複雜的游標移動,只要熟悉以後都非常方便,希望讀者都能切實掌握。

表1.3所示為vi中的游標移動指令,這些指令都是在命令列模式下使用的。

vi中游標移動的命令

表1.3

5.vi的查詢與替換

在vi中的查詢與替換也非常簡單,其操作有些類似在telnet中的使用。其中,查詢的命令在命令列模式下,而替換的命令則在底行模式下(以「:」開頭),其命令如表1.4所示。

vi的查詢與替換命令

表1.4

6.vi的檔案操作指令

vi中的檔案操作指令都是在底行模式下進行的,所有的指令都是以「:」開頭,其命令如表1.5所示。

vi的檔案操作指令

表1.5

vi的使用例項分析

本文給出了乙個vi使用的完整例項,通過這個例項,讀者一方面可以熟悉vi的使用流程,另一方面也可以熟悉linux的操作,希望讀者能夠首先自己思考每一步的操作,再看後面的例項解析答案。

1.vi使用例項內容

(1)在/root目錄下建乙個名為vi的目錄。

(2)進入vi目錄。

(3)將檔案/etc/inittab複製到當前目錄下。

(4)使用vi編輯當前目錄下的inittab。

(5)將游標移到該行。

(6)複製該行內容。

(7)將游標移到最後一行行首。

(8)貼上複製行的內容。

(9)撤銷第9步的動作。

(10)將游標移動到最後一行的行尾。

(11)貼上複製行的內容。

(12)游標移到「si::sysinit:/etc/rc.d/rc.sysinit」。

(13)刪除該行。

(14)存檔但不退出。

(15)將游標移到首行。

(16)插入模式下輸入「hello,this is vi world!」。

(17)返回命令列模式。

(18)向下查詢字串「0:wait」。

(19)再向上查詢字串「halt」。

(20)強制退出vi,不存檔。

2.vi使用例項解析

在該例項中,每一步的使用命令如下所示。

(1)mkdir /root/vi

(2)cd /root/vi

(3)cp /etc/inittab ./

(4)vi ./inittab

(5)17< enter>(命令列模式)

(6)yy

(7)g

(8)p

(9)u

(10)$

(11)p

(12)21g

(13)dd

(14):w(底行模式)

(15)1g

(16)i 並輸入「hello,this is vi world!」(插入模式)

(17)esc

(18)/0:wait(命令列模式)

(19)?halt

(20):q!(底行模式)

嵌入式linux編輯器vi的使用

vi 命令 輸入 底行模式 插 入 insert i 從 光 標 所 在 位 置 前 面 開 始 插 入 資 料,光 標 後 的 資 料 隨 新 增 資 料 向 後 移 動。i 從 光 標列 的 第 一 個 非 空 白 字 符 前 面 開 始 插 入 資 料。開 始 open o 在 光 標 所 在...

嵌入式Linux中移植vim編輯器

近期在做嵌入式linux的開發,根檔案系統是基於busybox裁剪的。由於busybox中只有vi編輯器而沒有vim編輯器,而且vi編輯器用起來挺彆扭的,於是就想到了移植vim編輯器。步驟 2 將vim原始碼包解壓後,進入目錄vim74,由於在intel atom平台,vim有些特性不支援,在工程配...

嵌入式Linux vim編輯器支援中文

最近遇到了乙個問題,linux板子無法在vim中編輯中文,顯示都不能 但是cat 是可以正常檢視的 這就說明板子的系統是支援中文的,所以只需要把支援中文就可以了,如果你的板子不支援中文那就需要bootroot首先做乙個支援中文顯示的busybox檔案系統 這裡可以參考 按照上面的連線的做法,還不能解...