如題所示,本文為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
自帶的)。