Linux中的Vi編輯操作
------本文的內容是介紹Linux中的Vi編輯相關的一些操作
1、Vi的2模式
Command(命令)模式,用於輸入命令
Insert(插入)模式,用於插入文本
2、當我們按ESC進入Command模式後,可以使用下面的一些鍵位來移動游標
j 向下移動一行
k 向上移動一行
h 向左移動一個字元
l 向右移動一個字元
在編輯一個檔案時,對於j、k、l和h鍵,還能在這些動作命令的前面加上數字,比如3j,表示向下移動3行。
^ 將游標移動到行首
$ 將游標移動到行尾
3、插入模式(文本的插入)
i 在游標之前插入
a 在游標之後插入
I 在游標所在行的行首插入
A 在游標所在行的行末插入
o 在游標所在行的下面插入一行
O 在游標所在行的上面插入一行
4、常值內容的刪除操作
x 刪除一個字元
#x 刪除幾個自如,#表示數字,比如 3x
dd 刪除一行
#dd 刪除多個行,#代表數字,比如3dd表示刪除游標行及游標的下兩行
d$ 刪除游標到行尾的內容
J 清除游標所處的行與下一行之間的換行,行尾沒有空格的話會自動添加1個空格
#J 表示合并#(數字)行
5、退出儲存
在命令模式下按 shift+:會在文本底端出現冒號
:w 儲存
:w filename
另存新檔filename
:wq! 儲存並退出
:q! 不儲存退出
:x 儲存並退出,功能和 :wq!相同
6、撤銷操作
u命令取消最近一次的操作,可以使用多次來恢複原有的操作。
7、複製操作
yy 複製當前整行的內容到 vi緩衝區,#yy
,如5yy就是複製5行
yw 複製當前游標所在位置到單詞尾字元的內容到 vi緩衝區,相當於複製一個單詞
y$ 複製當前游標所在位置到行尾內容到緩衝區
y^ 複製當前游標所在位置到行首內容到緩衝區
如果要複製第m行到第n行之間的內容,可以在末行模式中輸入m,ny,例如3,5y複製第3行到第5行內容到緩衝區。
8、尋找和替換
Vi 的尋找和替換功能主要在末行模式完成,分別是“至上而下的尋找”和“至下而上的尋找”。
8.1 至上而下的尋找
/要尋找的字串,其中/代表從游標所在位置起開始尋找,例如,/work
n 尋找下一個匹配的字串
N 反向尋找下一個匹配的字串
8.2至下而上的尋找
?要尋找的字串,其中?代表從游標所在位置起開始尋找,例如,?work
8.3 替換
:s/old/new 用new替換行中首次出現的old
:s/old/new/g
用new替換行中所有出現的old
:#,#s/old/new/g
用new替換從第#行到第#行中出現的old
:%s/old/new/g
用new替換整篇中出現的old
如果替換的範圍較大時,在所有的命令尾加一個c命令,強制每個替換需要使用者進行確認,例如,s/old/new/c或 s/old/new/gc
9、恢複檔案
Vi在編輯某一個檔案時,會產生一個臨時檔案,這個臨時檔案以.swp結尾。正常退出時,該檔案會被自動刪除;但如果是意外退出,例如突然斷電,該檔案不會被刪除,在下一次編輯時可以選擇以下命令處理:
O 唯讀開啟,不改變檔案內容
E 繼續編輯檔案,不恢複.swp檔案儲存的內容
R 將恢複上次編輯以後未儲存檔案內容
Q 退出vi
D 刪除.swp檔案