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文件