基本操作
1 進入vi
在系統(tǒng)提示符號輸入vi及文件名稱后师幕,就進入vi全屏幕編輯畫面:
$ vi myfile
不過有一點要特別注意,就是您進入vi之后倔幼,是處于命令行模式(command mode)
顷蟆,您要切換到插入模式(Insert mode)
才能夠輸入文字。初次使用vi的人都會想先用上下左右鍵移動光標钉凌,結果電腦一直嗶嗶叫咧最,把自己氣個半死,所以進入vi后御雕,先不要亂動矢沿,轉換到插入模式(Insert mode)
再說吧!
2酸纲, 切換至插入模式(Insert mode)編輯文件
在命令行模式(command mode)
下按一下字母i
就可以進入插入模式(Insert mode)
捣鲸,這時候你就可以開始輸入文字了。
3闽坡,Insert 的切換
您目前處于插入模式(Insert mode)
栽惶,您就只能一直輸入文字,如果您發(fā)現(xiàn)輸錯了字疾嗅!想用光標鍵往回移動外厂,將該字刪除,就要先按一下ESC
鍵轉到命令行模式(command mode)
再刪除文字宪迟。
4酣衷,退出vi及保存文件
在命令行模式(command mode)
下,按一下 :
冒號鍵進入Last line mode
次泽,例如:
: w filename (輸入 w filename
將文章以指定的文件名filename保存)
: wq (輸入wq
穿仪,存盤并退出vi)
: q! (輸入q!
席爽, 不存盤強制退出vi)
4,命令行模式(command mode)功能鍵
1). 插入模式
按i
切換進入插入模式insert mode
啊片,按"i"進入插入模式后是從光標當前位置開始輸入文件只锻;
按a
進入插入模式后,是從目前光標所在位置的下一個位置開始輸入文字紫谷;
按o
進入插入模式后齐饮,是插入新的一行,從行首開始輸入文字笤昨。
2). 從插入模式切換為命令行模式
按ESC
鍵祖驱。
3). 移動光標
vi可以直接用鍵盤上的光標來上下左右移動,但正規(guī)的vi是用小寫英文字母h
瞒窒、j
捺僻、k
、l
崇裁,分別控制光標左匕坯、下、上拔稳、右移一格葛峻。
按ctrl
+b
:屏幕往"后"移動一頁。
按ctrl
+f
:屏幕往"前"移動一頁巴比。
按ctrl
+u
:屏幕往"后"移動半頁术奖。
按ctrl
+d
:屏幕往"前"移動半頁。
按數(shù)字0
:移到文章的開頭匿辩。
按G
:移動到文章的最后腰耙。
按$
:移動到光標所在行的"行尾"。
按^
:移動到光標所在行的"行首"
按w
:光標跳到下個字的開頭
按e
:光標跳到下個字的字尾
按b
:光標回到上個字的開頭
按#l
:光標移到該行的第#個位置铲球,如:5l,56l。
4). 刪除文字
x
:每按一次晰赞,刪除光標所在位置的"后面"一個字符稼病。
#x
:例如,6x
表示刪除光標所在位置的"后面"6個字符掖鱼。
X
:大寫的X然走,每按一次,刪除光標所在位置的"前面"一個字符戏挡。
#X
:例如芍瑞,20X
表示刪除光標所在位置的"前面"20個字符。
dd
:刪除光標所在行褐墅。
#dd
:從光標所在行開始刪除#行
5). 復制
yw
:將光標所在之處到字尾的字符復制到緩沖區(qū)中拆檬。
#yw
:復制#個字到緩沖區(qū)
yy
:復制光標所在行到緩沖區(qū)洪己。
#yy
:例如,6yy
表示拷貝從光標所在的該行"往下數(shù)"6行文字竟贯。
p
:將緩沖區(qū)內的字符貼到光標所在位置答捕。注意:所有與"y"有關的復制命令都必須與"p"配合才能完成復制與粘貼功能。
6). 替換
r
:替換光標所在處的字符屑那。
R
:替換光標所到之處的字符拱镐,直到按下ESC
鍵為止。
7). 回復上一次操作
u
:如果您誤執(zhí)行一個命令持际,可以馬上按下u
沃琅,回到上一個操作。按多次"u"可以執(zhí)行多次回復蜘欲。
8). 更改
cw
:更改光標所在處的字到字尾處
c#w
:例如阵难,c3w
表示更改3個字
9). 跳至指定的行
ctrl
+g
列出光標所在行的行號。
#G
:例如芒填,15G
呜叫,表示移動光標至文章的第15行行首。
5殿衰、Last line mode下命令簡介
在使用last line mode
之前朱庆,請記住先按ESC
鍵確定您已經處于command mode
下后,再按:
冒號即可進入last line mode
闷祥。
A) 列出行號
set nu
:輸入set nu
后娱颊,會在文件中的每一行前面列出行號。
B) 跳到文件中的某一行
#
:#
號表示一個數(shù)字凯砍,在冒號后輸入一個數(shù)字箱硕,再按回車鍵就會跳到該行了,如輸入數(shù)字15悟衩,再回車剧罩,就會跳到文章的第15行。
C) 查找字符
/關鍵字
:先按/
鍵座泳,再輸入您想尋找的字符惠昔,如果第一次找的關鍵字不是您想要的,可以一直按n
會往后尋找到您要的關鍵字為止挑势。
?關鍵字
:先按?
鍵镇防,再輸入您想尋找的字符,如果第一次找的關鍵字不是您想要的潮饱,可以一直按n
會往前尋找到您要的關鍵字為止来氧。
D) 保存文件
w
:在冒號輸入字母w
就可以將文件保存起來。
E) 離開vi
q
:按q
就是退出,如果無法離開vi啦扬,可以在q
后跟一個!
強制離開vi中狂。
qw
:一般建議離開時,搭配w
一起使用考传,這樣在退出的時候還可以保存文件吃型。
6、vi命令列表
1)僚楞、下表列出命令模式下的一些鍵的功能:
h
左移光標一個字符
l
右移光標一個字符
k
光標上移一行
j
光標下移一行
^
光標移動至行首
0
數(shù)字"0"勤晚,光標移至文章的開頭
G
光標移至文章的最后
$
光標移動至行尾
Ctrl+f
向前翻屏
Ctrl+b
向后翻屏
Ctrl+d
向前翻半屏
Ctrl+u
向后翻半屏
i
在光標位置前插入字符
a
在光標所在位置的后一個字符開始增加
o
插入新的一行,從行首開始輸入
ESC
從輸入狀態(tài)退至命令狀態(tài)
x
刪除光標后面的字符
#x
刪除光標后的#個字符
X
(大寫X)泉褐,刪除光標前面的字符
#X
刪除光標前面的#個字符
dd
刪除光標所在的行
#dd
刪除從光標所在行數(shù)的#行
yw
復制光標所在位置的一個字
#yw
復制光標所在位置的#個字
yy
復制光標所在位置的一行
#yy
復制從光標所在行數(shù)的#行
p
粘貼
u
取消操作
cw
更改光標所在位置的一個字
#cw
更改光標所在位置的#個字
2)赐写、下表列出行命令模式下的一些指令
w filename
儲存正在編輯的文件為filename
wq filename
儲存正在編輯的文件為filename,并退出vi
q!
放棄所有修改膜赃,退出vi
set nu
顯示行號
/
或?
查找挺邀,在/后輸入要查找的內容
n
與/或?一起使用,如果查找的內容不是想要找的關鍵字跳座,按n或向后(與/聯(lián)用)或向前(與?聯(lián)用)繼續(xù)查找端铛,直到找到為止。
對于第一次用vi疲眷,有幾點注意要提醒一下:
1禾蚕、用vi打開文件后,是處于命令行模式(command mode)
狂丝,您要切換到插入模式(Insert mode)
才能夠輸入文字换淆。切換方法:在命令行模式(command mode)
下按一下字母i
就可以進入插入模式(Insert mode)
,這時候你就可以開始輸入文字了几颜。
2倍试、編輯好后,需從插入模式切換為命令行模式才能對文件進行保存蛋哭,切換方法:按ESC
鍵县习。
3、保存并退出文件:在命令模式下輸入:wq即可>咦场(別忘了wq前面的)
vi使用手冊
VI是unix上最常用的文本編輯工具准颓,作為unix軟件測試人員,有必要熟練掌握它棺妓。
進入vi的命令
vi filename :打開或新建文件,并將光標置于第一行首
vi +n filename :打開文件炮赦,并將光標置于第n行首
vi + filename :打開文件怜跑,并將光標置于最后一行首
vi +/pattern filename:打開文件,并將光標置于第一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發(fā)生系統(tǒng)崩潰,恢復filename
vi filename…filename :打開多個文件性芬,依次編輯
移動光標類命令
h :光標左移一個字符
l :光標右移一個字符
space:光標右移一個字符
Backspace:光標左移一個字符
k或Ctrl+p:光標上移一行
j或Ctrl+n :光標下移一行
Enter :光標下移一行
w或W :光標右移一個字至字首
b或B :光標左移一個字至字首
e或E :光標右移一個字j至字尾
) :光標移至句尾
( :光標移至句首
}:光標移至段落開頭
{:光標移至段落結尾
nG:光標移至第n行首
n+:光標下移n行
n-:光標上移n行
n:光標移至當前行尾
屏幕翻滾類命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b峡眶;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部植锉。
插入文本類命令
i :在光標前
I :在當前行首
a:光標后
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字符
R:替換當前字符及其后的字符辫樱,直至按ESC鍵
s:從當前光標位置處開始,以輸入的文本替代指定數(shù)目的字符
S:刪除指定數(shù)目的行俊庇,并以所輸入文本代替之
ncw或nCW:修改指定數(shù)目的字
nCC:修改指定數(shù)目的行
刪除命令
ndw或ndW:刪除光標處開始及其后的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當前行及其后n-1行
x或X:刪除一個字符狮暑,x刪除光標后的,而X刪除光標前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令 :
/pattern:從光標開始處向文件尾搜索pattern
?pattern:從光標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
選項設置
all:列出所有選項設置情況
term:設置終端類型
ignorance:在搜索中忽略大小寫
list:顯示制表位(Ctrl+I)和行尾標志($)
number:顯示行號
report:顯示由面向行的命令修改過的數(shù)目
terse:顯示簡短的警告信息
warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中辉饱,使用前面不帶“\”的特殊字符
nowrapscan:禁止vi在搜索到達文件兩端時搬男,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
最后行方式命令
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內容刪除
:w :保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:執(zhí)行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入并執(zhí)行之难礼,若不指
定n1傻铣,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行 冰悠。