用 VSCode 來十分鐘快速上手學習 Vim 吧(入門篇)

前言

接下來將會來介紹 Vim 基本入門,但是我必須說,剛開始絕對會一直碰壁是真的,概念就像是學新的輸入法一樣。

安裝套件

基本上想讓自己更快上手 Vim 的方式就是直接將自己習慣的編輯係改成 Vim 操作模式,所以在此建議先安裝該套件

VSCode Vim 套件安裝

(在此我是使用 VSCode 來撰寫)

基本上安裝完畢之後,如果本身沒有學習過 Vim 應該會頓時成為白痴,所以這一篇將會基本入門教學。

因此這一篇的教學基本上是基於這個套件來撰寫,可能會有一些地方與實際上的 Vim 若有一點落差,但我自己感覺上是沒差到哪裡,可能我自己曾經也有學過的關係吧。

模式認識

首先 Vim 有四種基本的模式

  • 基本模式 (NORMAL)
    • 又稱之為一般模式、預設模式等。
  • 輸入模式 (INSERT)
    • 又稱之為插入模式,也就是文字輸入模式。
  • 選取模式 (VISMAL)
    • 又稱之為視覺模式,主要是用於選取文字或者是方便閱讀與強調用,但通常來講我都是用來選取文字就是了。
  • 命令模式 (一個分號)

而這四種命令模式在切換時 VSCode 底下就會呈現相對應得切換模式。

輸入模式(剛好在聽歌)

而許多行為我們都必須在特定模式下才能夠移動甚至輸入,當然初學時最常遇到的狀況就是「不知道該如何退出模式」,其實 Vim 在退出模式時非常簡單,只需要按下 ESC 按鈕就會退出到基本模式(NORMAL)。

移動方向 (NORMAL)

以往我們都是使用鍵盤上的方向鍵來移動程式碼,但在 Vim 中是使用「基本模式(L)」然後主要透過 hjkl 來移動,當然你還是可以使用方向鍵來移動就是了。

(如果一直不確定自己模式,狂按 ESC 按鍵就對了。)

按鍵名稱 操作說明
h 向左移動一個字元
j 向下移動一行
k 向上移動一行
l 向右移動一個字元

在此要注意大小寫是有差別的唷。

編輯模式 (INSERT)

接下來我們移動到我們要的位置之後就會開始撰寫程式碼或者是寫 MD 等等,因此就必須進入「編輯模式(INSERT)」進入該模式的方式有四種

按鍵名稱 操作說明
i 在當前游標向前一個字元進入編輯(輸入)模式
a 在當前游標向後一個字元進入編輯(輸入)模式
o 在跳到後一行之後在進入編輯(輸入)模式

按鍵 `i`

按鍵 `a`

按鍵: o

當然退出編輯模式的方式一樣是 ESC,只要你想退出任何模式 ESC 狂按就對了,除此之外,我也會建議你養成習慣,退出任何模式都應該要習慣按下 ESC,否則你會發生一個笑話就是…

我學 Vim 到現在,還是不知道如何退出。(笑)

選取、複製與貼上文字 (VISMAL)

接下來就是很常用的選取、複製以及貼上文字等技巧,而這些行為雖然我們可以透過原本的操作行為來達到也就是 CRTL + C、V (複製、貼上),但是老話一句,都已經用了 Vim 你還不去習慣它這樣對嗎?

首先你要進去視覺模式之前必須按下 v 按鈕進入該模式,進入之後其實它的游標看不出差異,只是當你按下方向鍵的時候,你會發現文字被選取起來

視覺模式

接下來在這個模式下基本的操作如下

按鍵名稱 操作說明
y 複製選取的文字
p 貼上剛剛複製的文字
d 剪下選取的文字
u 復原剛剛的動作(ex: 刪除文字或者剪下)

請注意,大小寫上的操作還是非常重要的哦。

移動相關

Vim 裡面還有一個很特別好玩的東西,也就是透過指令模式來跳到指定行數,這個其實是我滿喜歡的功能之一,假使我們可能在一百多行寫程式,但當下我們可能突然需要滾到第一行時修改一些程式碼,那麼 Vim 就有支援該方式來快速跳行,首先按下電腦上的「Shift + :」組合按鈕,可以看到下方會變成一個「:|

命令模式

接下來該如何快速移動呢?輸入在你左邊的行數按 Enter 就可以跳到該行數

依照行數快速跳行

那麼相信也會有人希望不想用輸入指令的方式來達到跳到當前視窗的首行或者是尾行,那麼按鍵名稱如下

按鍵名稱 操作說明
gg 快速跳到當前視窗第一行 (不要懷疑就是連續按兩次 g,你可以把它想向成玩遊戲掛點了 gg 了,所以要重來?)
Shift + g 快速跳到當前視窗最後一行 (其實當按著 Shift 的時候 g 會變成大寫 G,因此這邊我才會打小寫。)

但是這邊要注意,以上兩個按鍵組合必須在基本模式 (NORMAL)下才可以操作

除此之外你應該會好奇,那麼當前行數跳到首行與尾行呢(不是當前視窗了哦)?在此其實有三種方式

按鍵名稱 操作說明
0 快速跳到首行第一個(不要懷疑就是 0 零,不是英文 O)
Shift + 6(^) 快速跳到首行第一個
Shift + 4($) 快速跳到尾行最後一個

以上操作都必須在 基本模式 (NORMAL)下才可以操作 下才可以唷。

最後這邊還有一種模式在移動上非常方便,也就是搜尋,在此搜尋是必須按下 「/」 按鍵,當進入該模式之後,就可以輸入自己想要搜尋的單字(中文不支援,僅限英文。)

當你輸 完畢之後按下 Enther 才算是完成搜尋這個動作,然後如果你發現你並不是要這一行時,可以輸入以下指令移動到上下個搜尋結果

按鍵名稱 操作說明
/ 進入搜尋模式(僅限英文,輸入完畢後記得按下 Enter)
Shift + 8(*) 向下查看搜尋結果
Shift + 3(#) 向上查看搜尋結果

當你搜尋到你要的結果之後,就可以按下 i 或是 a 進入編輯模式囉~

結語

基本上 Vim 在初學過程中是真的有一定難度,這一篇只是簡單入門,實際上還沒有介紹到相當多更進階的技巧,如果你有學過無蝦米的話,你應該也會有一種感覺「好像要背相當多的字根」概念一樣,而 Vim 其實也差不多,但是當你一整個習慣之後,其實不論是開發或者是撰寫文章,在移動上是非常快速的。