Vim 初學者學習筆記

一起來學習 Vim,提升開發速度吧!

Lai
UnaLai
4 min readSep 26, 2020

--

最近在夥伴們的推薦下,決定入坑 Vim,希望能藉此提升自己的開發速度,讓自己手指頭的移動範圍變小。此篇文章為近日初接觸 Vim 時,基礎指令的筆記。

➤ 模式

Vim 跟一般開發最不一樣的地方,就是它有模式的切換,會使得鍵入的按鈕有不同意義。

尚未使用 Vim 之前,選取內容、快速移動、複製或查找程式碼等非輸入文字的操作,可能都需要使用滑鼠,或是組合鍵才能達成。

透過模式操作,可以遠離滑鼠、複雜的組合鍵操作等。使開發者能夠快速依照腦中的想法操作、編輯程式碼。

Vim 常用的模式有以下四種:

  • 一般模式(Normal mode)
    進入 Vim 時的初始模式,可於此模式中進行開發上的操作,例如於此模式中輸入 dd 可直接刪除該行。
    於其他模式中,想回到此模式,可按下 esc 回到此模式。
  • 插入模式(Insert mode)
    輸入編輯文字模式。
    於一般模式中,可按下 iIaA 等進入此模式。
  • 指令模式(Command-line mode)
    輸入指令模式。以 : 開頭,鍵入指令,即可執行指令。例如全域取代為 :%s/some/other/gc
  • 可視模式(visual)
    此模式提供操作文本的靈活方法。
    於一般模式中,按下 v 或 V 鍵可進入此模式。

➤ 意義

  1. 表示行首
    ^
  2. 表示行尾
    $
  3. 表示一個字
    w

➤ 移動

  1. 左下上右移動
    HJKL (筆者一直手卡,直覺覺得是左上下右😓)
  2. 移動至檔首 gg
    移動至檔尾 G
  3. 移到目前螢幕的最上方
    H
  4. 移到目前螢幕的最下方
    L
  5. 往下移動 x 行
    x+enter ,例如往下移動十行 10+enter
  6. 直接移動到第 x 行
    :x+enter ,例如往下移動十行 :10+enter
  7. 游標移動到上下一個段落
    { }
  8. 往其他分割視窗移動
    ctrl + w + 方向鍵(HJKL)
  9. 移動到每一個字的自首
    w
  10. 返回上一個字的自首
    b

➤ 選取

  1. 選取字元
    v + 方向鍵(HJKL)
  2. 選取行
    V + 方向鍵(HJKL)

➤ 刪除相關

  1. 刪除整行
    dd
  2. 刪除一個字(當前位置至結尾)
    dw
  3. 刪除至檔首
    dgg
  4. 刪除至檔尾
    dG
  5. 刪除至行首
    d0
  6. 刪除至行尾
    d$ 或是 D
  7. 刪除目前選到的內容
    x

➤ 複製相關

  1. 複製整行
    yy
  2. 複製一個字(當前位置至結尾)
    yw
  3. 複製至檔尾
    yG
  4. 複製至檔首
    ygg
  5. 複製至行首
    y0
  6. 複製至行尾。含游標所在處字元
    y$

➤ 貼上相關

  1. 貼至游標前
    P
  2. 貼至游標後
    p

➤ 復原

  1. 復原
    u

➤ 其他操作

  1. 重複上一次動作
    .
  2. 游標所在處之字串大小寫轉換
    ~

➤ 搜尋取代

假設需要將整份文件中的文字 data 取代為 form。有以下幾種方式:

  • 方式一:使用指令
    :%s/data/form/g
    上述指令會將文件中含有 data 的字串都取代為 form。可能包含不想取代的文字。可以改使用 :%s/data/form/gc 可以將查找到的字串,一個一個進行確認後再取代。
  • 方式二:使用 * 搜尋,再用 . 重複操作
    1. 選取文件中任一個想要取代的 data 字串
    2. * 表示搜尋此字串
    3. cwform 其中 cw 表示改變文字,改變為 form
    4. esc 回到一般模式
    5. n 移到下一個符合的字串
    6. 確認為欲取代的文字,按下 . 重複先前動作

➤ Cheat sheet

學習過程,遇到新的指令時,可以透過 Vim Cheat Sheet 快速查詢 👍

以上是今天的小筆記分享,有任何問題都歡迎留言指教,謝謝 😊 筆者要趕緊去練練卡到不行的手指頭了 😓

--

--

Lai
UnaLai
Editor for

我是一名前端工程師,我熱愛學習與分享 ❤︎