如題所示,本文為Vim入門教程,文章涵蓋Vim基本的操作:插入、替換、刪除、搜索、修改、撤銷、重做等等,以及筆者個人的理解和說明。
光標移動
方向鍵
1 k
2h l
3 j
光標移動的方向鍵是hjkl,當然還有默認的方向鍵。要記住hjkl其實很容易,以j為中心:
| Command | Description |
|---|---|
j | 形似下箭頭,使光標向下移動。 |
h | 位於左邊,使光標向左移動。 |
l | 位於右邊,使光標向右移動。 |
k | 使光標向上移動。 |
其他
| Command | Description |
|---|---|
0 | 使光標移動至行首。 |
$ | 使光標移動至行尾部,可記作end of line。 |
xw | 使光標移動x個單詞,w可記作word,比如2w,使光標移動兩個單詞,並位於第二個單詞的首個字符處。 |
xe | 使光標移動x個單詞,e可記作end of word,這個和xw相似,區別是移動後,光標移動後,位於第x個單詞的尾部字符處。 |
刪除
| Command | Description |
|---|---|
x | 刪除一個字符。 |
dw | 刪除一個單詞,可記作delete word。 |
dxw | 刪除x個單詞,可記作delete x words,比如:d2w。 |
d$ | 刪除當前光標位置到行尾的的所有字符,$可記作end of line。 |
dd | 刪除整行,此外dd可接受一個數字前綴x,表示刪除x行,比如:2dd。 |
撤銷與重做
| Command | Description |
|---|---|
u | 撤銷上一個命令,可記作undo。 |
U | 撤銷當前行所有的修改。 |
CTRL-R | 重做,可記作redo。 |
插入
進入輸入模式,最常用的是i命令,可記作insert。
但是如果需要追加內容的話,i是無法實現的,此時我們需要使用A命令,可記作append,它使光標位於行尾。
| Command | Description |
|---|---|
i | 光標位置不變,進入輸入模式,可記作insert。 |
a | 光標向後移動一個字符,並進入插入模式,可記作append。 |
A | 光標處於當前行行尾,並進入插入模式,可記作append。 |
o | 在當前行下添加新行,並進入插入模式,意為open。 |
O | 在當前行上添加新行,並進入插入模式。 |
替換
| Command | Description |
|---|---|
rx | 將當前光標處的字符替換為x,r可記作replace。 |
R | 進入替換模式。 |
:s/old/new | 將當前行第一個old字符串替換成new,s意為substitute。 |
:s/old/new/g | 將當前行所有old字符串替換成new,g可記作globally。 |
:#,#s/old/new/g | #為行號,將指定行之間的所有old字符串替換成new,比如:1,10s/old/new/g。 |
:%s/old/new/g | 將文中所有的old字符串替換成new。 |
:%s/old/new/gc | 將文中所有的old字符串替換成new,但在替換前會顯示確認提示。 |
修改
如果單詞錯誤過多,用替換來操作是很不方便的,這類情況就需要用到修改命令:
| Command | Description |
|---|---|
ce | 將當前光標位置到單詞尾部的字符刪除,並進入輸入模式,c可記作change,e可記作end of word。 |
cw | 刪除一個單詞,並進入輸入模式。 |
cxw | 刪除x個單詞,並進入輸入模式。 |
c$ | 刪除當前光標位置到行尾的的所有字符,並進入輸入模式,$可記作end of line。 |
複製和粘貼
首先我們需要使用v命令選擇需要複製的文本,選中後使用y(yank)進行復制,最後使用p(paste)命令即可粘貼。
y命令也可以類似d命令那樣:
yw- 複製一個單詞。yxw- 複製x個單詞。y$- 複製當前光標處到行尾的內容。yy- 複製整行。
搜索
此處將介紹三個搜索命令:/、?和%:
| Command | Description |
|---|---|
/ | /後面加上要搜索的內容(區分大小寫),然後回車即可進行搜索,n繼續向下搜索,N向前搜索。 |
? | ?和/用法一致,只是搜索方向相反。 |
% | %會匹配(和),[和],{和}。 |
搜索默認是區分大小寫的,我們可以通過
:set ic忽略大小寫(ignore case)。
保存和退出
| Command | Description |
|---|---|
:w | :w保存當前的修改,可記作write,也可以指定保存的文件名,比如:w filename,則會將內容保存到filename。 |
:q | :q退出編輯,可記作quit。 |
w、q可以一起使用,如:wq則表示保存並退出。
執行外部命令
在Vim中,我們還可以執行外部的命令,比如:!ls則會執行外部命令ls。
其他命令
| Command | Description |
|---|---|
:no | 跳到行no |
#G | 跳到行# |
G | 跳到文件底部 |
gg | 跳到文件頂部 |
CTRL-O | 返回上一個位置 |
CTRL-I | 前進下一個位置 |
:set nu | 顯示行號 |
:set ic | 忽略大小寫(ignore case) |
:set noic | 區分大小寫(no ignore case) |
練習
對於筆者來說,光看不練是無法記住的,所以建議經常使用和練習,才能熟練地使用Vim。另外我推薦一款名為vimtutor的練習腳本(安裝Vim自帶的)。



