vim快捷鍵

7hu95b發表於2024-06-06

幾點經驗:

  • 如果要將vim向vscode對齊,沒有外掛是做不到
  • vim的外掛要編寫眾多的配置檔案、並且有部分外掛挑平臺;像vscode那樣基本上開箱即用比較困難
  • 剛開始學習還能折騰一下,到最後發現:vim最本質的是沒有外掛的本體。很多時候沒有條件(或不想)配置外掛,而能否熟練操作本體才是最關鍵的!

這篇文章將從四個方面:編輯、window、buffer、tabine,總結自己常用的vim自帶的快捷鍵或指令。其中,後三個視窗相關的快捷鍵也比較相似,主要是理清其設計思路。

一、編輯:增刪改查

目的:補充幾個好用、但可能不常用的快捷鍵。

整行的格式調整:

  • <<, >> 整行向左(右)縮排。
  • >%, <%{}, (), [] 包裹的內容向右(左)縮排。
  • :le :ce :ri 分別實現當前行居左、中、右對齊。

不用進入Insert模式、一些快速的修改:

  • ~ 對當前游標字元進行大小寫反轉;
  • u 為撤銷一次,U 為撤銷所有修改,<C-r> 為反撤銷。
  • .: 修改完之後移動至下一個單詞處,按 . 可重複相同操作。

比如 test test 修改為 st test,移動到第二個 test 處在 normal 下按點,則會重複相同的操作。

除了

  • I 為在行首插入,A 為在行尾插入;o 為在下方插入一行並進入插入模式,O 為上一行。

游標移動的一些小技巧,能夠幫你更快地定位到目標位置:

  • % 在匹配的括號對之間跳轉。

  • 0^ 都能實現移動到行首,區別在於 ^ 是移動到行首第一個字元。

  • g; 跳轉到上次修改的位置,g, 跳轉到下次修改的位置。

  • M 將游標移動到螢幕中部,L 為螢幕底部,H 為螢幕頂部。

  • gd 跳轉到區域性變數定義處(這類似於查詢,和 ctags 是有區別的),gD 為全域性查詢;

  • :q 為退出,而 q: 為:進入輸入歷史,相當於 :history

  • q 進入宏記錄模式,輸入字母會把記錄的內容存到當前字母下,按 q 退出。

二、window

  • :sp [filename] 上下分割檔案,預設檔名會 clone 當前檔案,同 <C-w>s:vs 為左右分割,同 <C-w>v
  • :shell 會暫時退出 vim 介面到 shell,使用完後輸入 exit 退出;:terminal zsh 預設會水平開啟終端,退出需要先 exit<C-d>,然後關閉此 buffer 即可。

三、buffer

四、tabine