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