Shell 學習 vim命令

最近很喜歡玩Linux,對於vim這個程序開發工具的常用命令做個總結,以後可以經常查閱。

1 一般命令模式下

移動光標方法
h或向左箭頭 光標向左移動一個字符
j或向下箭頭 光標向下移動一個字符
k或向上箭頭 光標向上移動一個字符
l或向右箭頭 光標向右移動一個字符
想要進行多次移動,例如向下移動30行,可以使用"30j"或者"30向下箭頭",即在操作前加上行數
ctrl + f 屏幕向下移動一頁,相當於page down按鍵[常用]
ctrl + b 屏幕向上移動一頁,相當於page up按鍵[常用]
ctrl + d 屏幕向下移動半頁
ctrl + u 屏幕下上移動半頁
+ 光標移動到非空格符的下一行
- 光標移動到非空格符的上一行
n + 空格鍵 n代表數字,例如20 + 空格鍵,光標會移動到這一行的n個字符
0 或 home鍵 移動到這個一行最前面字符處[常用]
$ 或 End鍵  移動到這一行最後面字符[常用]
H 光標移動到這個屏幕的最上方那一行的第一個字符
M 光標移動到這個屏幕的中央那一行的第一個字符
L 光標移動到這個屏幕的最下方那一行的第一個字符
G 移動到這個文件的最後一行[常用]
nG n爲數字,移動到這個文件的第n行,例如20G則會移動到這個文件的第20行
gg 移動到這個文件的第一行,相當於1G[常用]
查找與替換
/word 向光標之下尋找一個名稱爲word的字符串。例如要在文件內查找damon這個字符串,就輸入/damon即可[常用]
?word 向光標之上尋找一個字符串名稱爲word
n 這個n是英文按鍵,代表重複前一個查找動作
N 這個N是英文按鍵,與n剛好相反,爲反向進行前一個查找動作
使用/word配合n及N是非常有用的,可以讓你重複的查找到一些你查找的關鍵詞
:n1,n2/word1/word2/g

n1與n2爲數字,在第n1和n2行之間尋找world1這個字符串,並將該字符串替換爲word2,舉例來說,在100與200

行之間查找damon並替換爲demon,則:“:100,200/damon/demon/g” [常用]

:1,$s/word1/word2/g 從第一行到最後一行尋找word1字符串,並將該字符串替換爲word2[常用]
:1,$s/word1/word2/gc

從第一行到最後一行尋找word1字符串,並將該字符串替換爲word2,且在替換前顯示是字符給用戶確認(confirm)是否

需要替換[常用]

刪除、賦值與粘貼
x與X 在一行當中,x爲向後刪除一個字符(相當於delete按鍵),X爲向前刪除一個字符(相當與backspace,即退格鍵)[常用] 
nx n爲數字,連續向後刪除n個字符。舉例來說,我要連續刪除10個字符,10x
dd 刪除(剪切)光標所在的那一整行[常用]
ndd n爲數字,刪除(剪切)光標所在的向下n行,例如20dd則是刪除(剪切)20行[常用]
d1G 刪除(剪切)光標所在到第一行的所有數據
dG 刪除(剪切)光標所在到最後一行的所有數據
d$ 刪除(剪切)光標所在處,到該行的最後一個字符
d0 那個是數字的0,刪除(剪切)光標所在處,到該行的最前面一個字符
yy 複製光標所在的那一行[常用]
nyy n爲數字,複製光標所在的向下n行,例如20yy則是複製20行[常用]
y1G 複製光標所在行到第一行的所有數據
yG 複製光標所在行到最後一行的所有數據
y0 複製光標所在的那個字符到該行行首的所有數據
y$ 複製光標所在的那個字符到該行行首的所有數據
p與P p爲將已複製的數據在光標下一行粘貼,P則爲貼在光標上一行。
J 將光標所在行與下一行的數據結合成同一行
c 重複刪除多個數據,例如向下刪除10行,[10cj]
u 恢復前一個操作
ctrl + r 重複上一個操作
. 重複前一個操作,如果你想重複刪除,重複粘貼等操作,按下小數點 . 就好用 [常用]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 一般命令模式切換到編輯模式

進入、插入或替換的編輯模式
i與I

進入插入模式:

i爲從目前光標所在處插入,I爲在目前所在行的一個非空格符開始插入[常用]

a與A

 進入插入模式:

a爲從目前光標所在的下一個字符處開始插入,A爲從光標所在行的最後一個字符處開始插入[常用]

 o與O

 進入插入模式:

o爲在目前光標所在的下一行處插入新的一行,O爲在目前光標所在處的上一行插入新的一行[常用]

 r與R

 進入插入模式:

r只會替換光標所在的那一個字符一次;R會一直替換光標坐在的文字,直到按下Esc爲止[常用]

上面這些按鍵中,在vi界面的左下角會出現【--INSERT--】或【--REPLACE--】的字樣。  
 Esc  退出編輯模式,回到一般命令模式中[常用]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 一般模式切換到命令行模式

命令行模式的保存、退出等命令
:w 將編輯的數據寫入磁盤文件中,即保存[常用]
:w! 若文件屬性爲只讀時,強制寫入該文件。不過,到底能不能寫入,還是跟你對該文件的文件權限有關
:q 退出vi[常用]
:q! 若曾修改過文件,又不想保存,使用!爲強制退出不保存
注意一下,那個!在vi當中,常常具有強制的意思。
:wq 保存後UI出,若爲:wq!則爲強制保存後退出[常用]
ZZ 這是大寫的Z,若文件沒有修改,則不保存退出,若文件已經被修改過,則保存後退出
:w [filename] 將編輯的數據保存成另一個文件,類似另存爲新文件
:r [filename] 在編輯的數據中,讀入另一個文件的數據,亦即將filename這個文件內容加到光標所在行後面
:n1,n2 w [filename] 將n1到n2的內容保存爲filename這個文件
:!command

暫時退出vi到命令行模式下執行command的顯示結果。例如

【:!ls /home】則即可在vi當中查看/home下面以ls輸出的文件信息

vi環境的修改
:set nu 顯示行號,設置之後,會在每一行的前綴顯示該行的行號
:set nonu 與set nu相反爲取消行號

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

注意:在vi中,數字是很有意義的,數字通常代表重複做幾次的意思,也有可能是代表去到第幾個什麼什麼的意思。舉例來說,要刪除(剪切)50行,則是【50dd】。數字加在操作之前,

那我要向下移動20行,則【20j】或【20向下箭頭】。

常用的vi命令就這些,沒事得溫習溫習了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章