Vim 快速入門

如題所示,本文為Vim入門教程,文章涵蓋Vim基本的操作:插入、替換、刪除、搜索、修改、撤銷、重做等等,以及筆者個人的理解和說明。

光標移動

方向鍵

    k
h       l
    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 將當前光標處的字符替換為xr可記作replace
R 進入替換模式。
:s/old/new 將當前行第一個old字符串替換成news意為substitute
:s/old/new/g 將當前行所有old字符串替換成newg可記作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可記作changee可記作end of word
cw 刪除一個單詞,並進入輸入模式。
cxw 刪除x個單詞,並進入輸入模式。
c$ 刪除當前光標位置到行尾的的所有字符,並進入輸入模式,$可記作end of line

複製和粘貼

首先我們需要使用v命令選擇需要複製的文本,選中後使用yyank)進行復制,最後使用ppaste)命令即可粘貼。

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

wq可以一起使用,如: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自帶的)。