Vim 快速入門

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

光標移動

方向鍵

    k
h       l
    j

光標移動的方向鍵是hjkl,當然還有默認的方向鍵。要記住hjkl其實很容易,以j為中心:

CommandDescription
j形似下箭頭,使光標向下移動。
h位於左邊,使光標向左移動。
l位於右邊,使光標向右移動。
k使光標向上移動。

其他

CommandDescription
0使光標移動至行首。
$使光標移動至行尾部,可記作end of line
xw使光標移動x個單詞,w可記作word,比如2w,使光標移動兩個單詞,並位於第二個單詞的首個字符處。
xe使光標移動x個單詞,e可記作end of word,這個和xw相似,區別是移動後,光標移動後,位於第x個單詞的尾部字符處。

刪除

CommandDescription
x刪除一個字符。
dw刪除一個單詞,可記作delete word
dxw刪除x個單詞,可記作delete x words,比如:d2w
d$刪除當前光標位置到行尾的的所有字符,$可記作end of line
dd刪除整行,此外dd可接受一個數字前綴x,表示刪除x行,比如:2dd

撤銷與重做

CommandDescription
u撤銷上一個命令,可記作undo
U撤銷當前行所有的修改。
CTRL-R重做,可記作redo

插入

進入輸入模式,最常用的是i命令,可記作insert
但是如果需要追加內容的話,i是無法實現的,此時我們需要使用A命令,可記作append,它使光標位於行尾。

CommandDescription
i光標位置不變,進入輸入模式,可記作insert
a光標向後移動一個字符,並進入插入模式,可記作append
A光標處於當前行行尾,並進入插入模式,可記作append
o在當前行下添加新行,並進入插入模式,意為open
O在當前行上添加新行,並進入插入模式。

替換

CommandDescription
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,但在替換前會顯示確認提示。

修改

如果單詞錯誤過多,用替換來操作是很不方便的,這類情況就需要用到修改命令:

CommandDescription
ce將當前光標位置到單詞尾部的字符刪除,並進入輸入模式,c可記作changee可記作end of word
cw刪除一個單詞,並進入輸入模式。
cxw刪除x個單詞,並進入輸入模式。
c$刪除當前光標位置到行尾的的所有字符,並進入輸入模式,$可記作end of line

複製和粘貼

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

y命令也可以類似d命令那樣:

  • yw - 複製一個單詞。
  • yxw - 複製x個單詞。
  • y$ - 複製當前光標處到行尾的內容。
  • yy - 複製整行。

搜索

此處將介紹三個搜索命令:/?%

CommandDescription
//後面加上要搜索的內容(區分大小寫),然後回車即可進行搜索,n繼續向下搜索,N向前搜索。
??/用法一致,只是搜索方向相反。
%%會匹配()[]{}

搜索默認是區分大小寫的,我們可以通過:set ic 忽略大小寫(ignore case)。

保存和退出

CommandDescription
:w:w保存當前的修改,可記作write,也可以指定保存的文件名,比如:w filename,則會將內容保存到filename
:q:q退出編輯,可記作quit

wq可以一起使用,如:wq則表示保存並退出。

執行外部命令

Vim中,我們還可以執行外部的命令,比如:!ls則會執行外部命令ls

其他命令

CommandDescription
:no跳到行no
#G跳到行#
G跳到文件底部
gg跳到文件頂部
CTRL-O返回上一個位置
CTRL-I前進下一個位置
:set nu顯示行號
:set ic忽略大小寫(ignore case
:set noic區分大小寫(no ignore case

練習

對於筆者來說,光看不練是無法記住的,所以建議經常使用和練習,才能熟練地使用Vim。另外我推薦一款名為vimtutor的練習腳本(安裝Vim自帶的)。