vi一共有三種模式:命令模式(conmand mode),輸入模式(input mode)和末行模式(last line mode)
esc鍵 i a o
光標移動(dòng)
ESC進(jìn)入Command模式后
j 向下移動(dòng)一行
k 向上移動(dòng)一行
h 向左移動(dòng)一個(gè)字符
l 向右移動(dòng)一個(gè)字符
ctrl+b 向上移動(dòng)一屏
ctrl+f 向下移動(dòng)一屏
向上箭頭 向上移動(dòng)
向下箭頭 向下移動(dòng)
向左箭頭 向左移動(dòng)
向右箭頭 向右移動(dòng)
我們編輯一個(gè)文件時(shí),對于 j、k、l和h鍵,還能在這些動(dòng)作命令的前面加上數字,比如 3j,表示向下移動(dòng)3行。
/# +Enter #為查找的內容
插入模式(文本的插入)
i 在光標之前插入
a 在光標之后插入
I 在光標所在行的行首插入
A 在光標所在行的行末插入
o 在光標所在的行的下面插入一行
O 在光標所在的行的上面插入一行
s 用輸入的文本替換光標所在字符
S 用輸入的文本替換光標所在行
文本內容的刪除操作;
x 一個(gè)字符
#x 刪除幾個(gè)字符,#表示數字, 比如3x
dw 刪除一個(gè)單詞
#dw 刪除幾個(gè)單詞,#用數字表示, 比如3dw表示刪除三個(gè)單詞
dd 刪除一行;
#dd 刪除多個(gè)行,#代表數字, 比如3dd 表示刪除光標行及光標的下兩行
d$ 刪除光標到行尾的內容
J 清除光標所處的行與上一行之間的空格,把光標行和上一行接在一起
退出保存;
在命令模式下按 shift+: 文本底端出現冒號
:w 保存;
:w filename 另存為filename;
:wq! 保存退出;
:wq! filename 注:以filename為文件名保存后退出;
:q! 不保存退出;
:x 應該是保存并退出 ,功能和:wq!相同
撤銷(xiāo)操作
u命令取消最近一次的操作,可以使用多次來(lái)恢復原有的操作[1]?
U取消所有操作
Ctrl+R可以恢復對使用u命令的操作 (對u命令的恢復)
復制操作
yy命令復制當前整行的內容到vi緩沖區
yw復制當前光標所在位置到單詞尾字符的內容到vi緩存區,相當于復制一個(gè)單詞
y$復制光標所在位置到行尾內容到緩存區
y^復制光標所在位置到行首內容到緩存區
#yy例如:5yy就是復制5行
#yw例如:2yw就是復制兩個(gè)單詞
如果要復制第m行到第n行之間的內容,可以在末行模式中輸入m,ny例如:3,5y復制第三行到第五行內容到緩存區。
查找和替換
vi的查找和替換功能主要在末行模式完成:
至上而下的查找
/ 要查找的字符竄,其中/代表從光標所在位置起開(kāi)始查找,例如:/ work
至下而上的查找
?要查找的字符竄 例如:/ work
替換
:s/old/new用new替換行中首次出現的old
: s/old/new/g 用new替換行中所有出現的old
:#,# s/old/new/g用new替換從第#行到第#行中出現的old
:% s/old/new/g用new替換整篇中出現的old
如果替換的范圍較大時(shí),在所有的命令尾加一個(gè)c命令,強制每個(gè)替換需要用戶(hù)進(jìn)行確認,例如:s/old/new/c 或s/old/new/gc
恢復文件
vi在編輯某一個(gè)文件時(shí),會(huì )生成一個(gè)臨時(shí)文件,這個(gè)文件以 . 開(kāi)頭并以 .swp結尾。正常退出該文件自動(dòng)刪除,如果意外退出例如忽然斷電,該文件不會(huì )刪除,我們在下次編輯時(shí)可以選擇一下命令處理:
O只讀打開(kāi),不改變文件內容
E繼續編輯文件,不恢復.swp文件保存的內容
R將恢復上次編輯以后未保存文件內容
Q退出vi
D刪除.swp文件
或者使用vi -r 文件名來(lái)恢復未保存的內容
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。