Linux常用命令總結——vi編輯器
vi是linux系統命令行界面下的一個強大的編輯器。
Vi的三種模式
命令模式:可通過vi命令來管理文件,如光標的移動,字符、行的刪除移動等;
插入模式:可對文件進行編輯;
末行模式:可保存、退出、設置編輯環境等;
進入vi的命令
vi filename :打開或新建文件,並將光標置於第一行首
vi +n filename :打開文件,並將光標置於第n行首
vi + filename :打開文件,並將光標置於最後一行首
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename
vi +/pattern filename:打開文件,並將光標置於第一個與pattern匹配的串處 (在RHEL5中測試沒有用)
vi filename....filename :打開多個文件,依次進行編輯 (在RHEL5中測試沒有用)
退出vi的命令
:w 保存
:w filename 另存為filename文件中
:q 退出vi,若文件被修改過,則提示要保存
:wq 保存並退出,即w和q合成一步,先w後q
:x 保存當前文件並退出,和wq等價
:q 退出vi
:q! 不保存文件並退出vi
移動光標命令
以下的光標移動都是在命令模式下起作用的。
h 或space 光標左移一個字符
l 或Backspace 光標右移一個字符
k或Ctrl+p 光標上移一行
j或Ctrl+n 光標下移一行
^ 將光標移動到所在行的行首
$ 將光標移動到所在行的行尾
H 把光標移到屏幕頂行的首字符處
L 把光標移到屏幕末行的尾字符處
Ctrl+b 屏幕往後移一屏
Ctrl+f 屏幕往前移一屏
Ctrl+u 屏幕往後移半屏
Ctrl+d 屏幕往前移半屏
M :光標移至屏幕中間行
Enter :光標下移一行
w或W :光標右移到下一個字至字首
b或B :光標左移到前一個字至字首
e或E :光標右移到下一個字至字尾
fc 把光標移到同一行的下一個c字符處(c可以是任何一個字符)
Fc 把光標移到同一行的前一個c字符處
tc 把光標移到同一行的下一個c字符的前一格
Tc 把光標移到同一行的前一個c字符的後一格
*| 把光標移到第*列上(“|”是與符號的豎線,*代表一個整數)
*l 把光標往右移動*個字符(“l”是與字符L的小字,*代表一個整數)
*h 把光標向左移動*個字符
*k 把光標向上移動*個字符
*j 把光標向下移動*個字符
) 把光標移至句尾
( 把光標移至句首
} 把光標移至段落開頭
{ 把光標移至段落結尾
*G:光標移至第*行首
*+:光標下移*行
*-:光標上移*行
*$:光標移至第*行尾
插入文本命令
命令
描述
i
在當前字符前插入文本
I
在行首插入文本
a
在當前字符後添加文本
A
在行末添加文本
o
在當前行後面插入一空行
O
在當前行前面插入一空行
R
以改寫方式輸入文本
刪除文件命令
命令
描述
x
刪除光標所在位置的字符
X
刪除光標所在位置的前一個字符
*x
刪除*個字符,從當前光標開始的*個字符
d$
刪除從當前光標到行末的內容
d^
刪除從當前光標到行首的內容
dd
刪除當前所在的一行
*d
刪除*行,當前所在的一行和後*-1行
dw
刪除一個字
*dw
刪除*個單詞
文本替換命令
R 替換當前字符
*r 用輸入的字符取代從當前光標處開開始的*字符
R 替換當前字符及其後的字符,直至按ESC鍵
*R 新輸入的文本出現*處,如3Rab,將用”ababab”替代.
cc用即將輸入的內容替換整行
C 替換從光標到末尾的所有內容
cb 替換從開始到光標處的內容。
cw 替換光標所在的字
[rang] s /pattern/string [選項]
Rang指查找的范圍,默認是全部文本。如2,4表示對2行到的行的內容進行替換。
Pattern用來指定需要被替換的內容,可以是正則表達式
Stirng 是用來替換pattern的字符串
[選項]:
c 每次替換前都進行詢問,要求用戶確認
e 不顯示錯誤
g 對指定范圍中的字符完成替換,替換時不進行詢問
i 替換時不區分大小寫
【例】在Test.java中將Test替換成test
[python]
[root@localhost rootfile]# vi Test.java
public class Test {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
s /Test/test
結果為
public class Test {
public static void main(String args[]) {
System.out.println("Hello World!");
}
}
查找命令
在命令模式下輸入“/”或“?”,切換到末行模式。
/pattern 光標開始處向文件尾搜索pattern,若遇到文件尾,則從文件頭開始
?pattern 光標開始處向文件首搜索pattern,若遇到文件頭,則從文件尾開始
/pattern/+* 將光標停在包含pattern的行的後面第*行上
/pattern/-*將光標停在包含pattern的行的前面第*行上
n 按原搜索方向重復上一次搜索命令
N 按相反方向重復上一次搜索命令
復制和粘貼
yw 將光標所在處的字復制到緩沖區
*yw 復制從當前字開始的*個字到綏沖區
yy 復制光標所在的行到緩沖區
*yy 復制光標所在行的*行到緩沖區
y$ 復制光標所在處到本行末尾的內容到緩沖區
y^ 復制光標所在處前一個字符到本行開頭的內容到緩沖區
yG 復制當前光標所在的行到文件尾的內容到緩沖區
lyG 復制當前光標所在的行到文件頭的內容到緩沖區
p 將緩沖區的內容粘貼到當前光標的右側,如果緩沖區內容為一行,則復制到光標下面一行
P 將緩沖區的內容粘貼到當前光標的左側,如果緩沖區內容為一行,則復制到光標上面一行
重復命令
在用vi編輯文本內容時經常會有一些重復操作,這時就要用到重復命令。重復命令只需要在命令模式下按下“.”即可,基操作是針對光標當前位置進行的。
撤消命令
撤消命令用於取消一次錯誤的操作,使之回到命令之前的狀態。重復命令只需要在命令模式下按下“u”或“U”即可。