Linux系統之vi編輯器

2021-09-08 12:48:18 字數 2848 閱讀 5099

vi編輯器是所有unix及linux系統下標準的編輯器,它的強大不遜色於任何最新的文字編輯器,這裡只是簡單地介紹一下它的用法和一小部分指令。由於對unix及linux系統的任何版本,vi編輯器是完全相同的,因此您可以在其他任何介紹vi的地方進一步了解它。vi也是linux中最基本的文字編輯器,學會它後,您將在linux的世界裡暢行無阻。

1、vi的基本概念

基本上vi可以分為三種狀態,分別是命令模式(command mode)、插入模式(insert mode)和末行模式(last line mode),各模式的功能區分如下:

1) 命令列模式(command mode)

控制螢幕游標的移動,字元、字或行的刪除,移動複製某區段及進入insert mode下,或者到 last line mode。

2) 插入模式(insert mode)

只有在insert mode下,才可以做文字輸入,按「esc」鍵可回到命令列模式。

3) 末行模式(last line mode)

設定vi編輯環境、儲存檔案、退出編輯器,以及多檔案內容進行查詢、替換等操作。

一、命令列模式(command mode)功能鍵

1、從命令模式進入到插入模式:

a在游標後插入內容;

a在當前行的末尾插入內容;

o在當前行的下面插入內容;

o在當前行的上面插入內容

i在游標處插入內容;

i在當前行的行首插入內容

2、命令模式下的跳轉命令:

上、下、左、右方向鍵

移動pageup或ctrl+b

向上翻頁;

pagedown或ctrl+f

向下翻頁

home

跳到當前行的行首(shift+^/數字0);

end跳到當前行的行尾(shift+$)

g(shift+g)

跳到檔案的最後一行;#g:跳轉到檔案的第#行

gg/1g

回到檔案的第一行行首;10gg:跳到檔案的第十行;22gg:跳到檔案的第22行;

h跳到當前螢幕的第一行

m跳到當前螢幕的中間

l跳到當前螢幕的最後一行

w乙個單詞乙個單詞的向右跳

b乙個單詞乙個單詞的向左跳

f後面跟想跳轉的字母,如:f b,向右跳到最近的乙個b字母處

3、命令模式下的複製和貼上命令:

yy複製當前行;比如:10yy:從當前行開始向下複製十行

yw從游標開始複製乙個單詞

y$複製游標處到行尾所有內容

y^複製游標處到行首所有內容

p(小寫)

將緩衝區中的內容貼上到游標位置處之後

p(大寫)

貼上到游標位置處之前

4、命令模式下的刪除\撤消\替換命令:

dd刪除當前行;10dd:從當前行開始向下刪除10行

dw從游標開始刪除乙個單詞

d$刪除游標處到行尾所有內容

d^刪除游標處到行首所有內容

x/del

刪除游標處的乙個字元

u撤消上一步操作

u用於取消對當前行所做的所有編輯

zz儲存當前的檔案內容並退出vi編輯器

ctrl+r

反撤消r b

把游標所在處的字元替換成b;r n:把游標處的字元替換成n

r從游標處連續向右替換直到按esc鍵停止  (游標處開始替換模式)

5、命令模式下檔案內容查詢:

/word

從上而下在檔案中查詢字串「word」

?word

從下而上在檔案中查詢字串「word」

n定位下乙個匹配的被查詢的字串

n定位上乙個匹配的被查詢的字串

二、插入模式

就是寫入文字內容。

三、末行模式(在「:」後面輸入內容)

1、儲存和退出:w儲存

w  aa.log

把當前檔案另存為aa.log 放到當前目錄

w  /tmp/ab.log

把當前檔案另存為ab.log放到/tmp目錄q退出

wq儲存後退出 和x一樣

q!不儲存退出

1090,1096  w  1090.log

把當前檔案的1090行到1096行,另存到當前目錄1090.log中

1085,1088s  /^/#/g

在1085行到1088行的行首插入#

%s  /^/#/g

所有行的行首插入#

1085,1088s  /^#//g

在1085行到1088行的行首去掉#

set nu

顯示行號   (臨時顯示)

set nonu

不顯示行號

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

e  /home/a.txt

在當前檔案下,開啟新的檔案進行編輯;

r  aa.log

把當前目錄下的aa.log檔案讀取到當前檔案中,起到檔案合併的效果

3、檔案內容替換

s /old/new

將當前行中查詢到的第乙個字串「old」替換為「new」

s /old/new/g

將當前行中查詢到的所有字串「old」替換為「new」

#,# s/old/new/g

在行號"#,#"範圍內替換所有的字串「old」為「new」

% s/old/new/g

在整個檔案範圍內替換所有的字串「old」為「new」

%s /^c/c/g

把當前文件中所有以c開頭的內容替換成c

s /old/new/c

在替換命令末尾加入c命令,將對每個替換動作提示使用者進行確認

Linux之vi編輯器

在該模式中,可以輸入命令來執行許多種功能。控制螢幕游標的移動,字元 字或行的刪除,移動複製某區段及進入編輯模式,或者到尾行模式。游標移動 字元級 上 k 下 j 左 h 右 l 鍵 單詞級 w word下個單詞首字母 b before上 本 個單詞首字母 e end下 本 個單詞尾字母 行級 定位到...

linux之vi編輯器

vi簡介 1.vi是一種廣泛存在於各種unix和linux系統中的文字編輯程式。2.vi不是排版程式,只是乙個純粹的文字編輯程式。3.vi是全螢幕文字編輯器,它沒有選單,只有命令。4.vi不是基於視窗的,所以,這個多用途編輯程式可以用於在任何型別的終端上編輯各式各樣的檔案。5.vi的功能十分強大,但...

linux之vi編輯器

vi是一種廣泛存在於各種unix和linux系統中的文字編輯程式。vi不是排版程式,只是乙個純粹的文字編輯程式。vi是全螢幕文字編輯器,它沒有選單,只有命令。vi不是基於視窗的,所以,這個多用途編輯程式可以用於在任何型別的終端上編輯各式各樣的檔案。vi的功能十分強大,但是命令繁多,熟練掌握起來有一定...