Try   HackMD

vim 操作方式記錄

vim for code review

從結論上說使用 vim 能有效的在程式內容中移動、選取、編輯,進一步透過建立、執行巨集,搭配 IDE 的快捷鍵進行跨檔案的移動(vim 裡面加上 plugin 也是可以達到),是可以很有效的進行程式碼修改。

基於此將常見的開發情境加入鍵盤快捷鍵,建立基於樣板的新檔案、重構、執行測試、編譯、版本控制等,完全可以更有效地進行開發。

在程式碼中移動

首先是覺得應該要使用英文輸入法(不只是新注音的英文模式)。

常用的移動當然是 j、k 做一般的上下移動,與 w、e、b 的同一行的移動。

再來是 {、} 段落的上下移動(by 空白行),這個時候開始發現程式中間留空行的重要性,第一時間在視覺上的分隔,又可以讓vim的移動更快。

當移動變快的時候 zz 就很重要了,特別是當游標移動到螢幕的最上下邊界時,可以讓目前游標的所在位置,回歸到畫面中間

H、L、M 也有一點效果,只是一行一行的移動有點難改習慣。

接下來 進階點的移動要等搜尋時說起

一般模式 (Normal mode)

鍵盤 說明
h、← 游標向左移動
j、↓、+、<enter> 游標向下移動
+、<enter> 會到下一行第一個非空白字
k、↑ 、- 游標向上移動
- 會到上一行第一個非空白字
l、→ 游標向右移動
0、^、$、_ 游標向行首、行末移動 (同正規)
註:0 是行首,^、_ 是非空白字元行首,$ 是對應 0 的行末
% 會在對應的括胡來回移動 { }、[ ]、( )
(、) 向前、後一個句子(sentence)移動 (以英文的句子結尾 .!? 當作結尾),寫程式或者中文句子基本沒有作用。
{、} 向前、後一個段落(paragraph)移動,以空行來區分
[[、]] 向前、後一個節(section)移動
H、M、L 移動到螢幕第一行、中間行、最末行
<n>G 移動到第 n 行
G 移動到檔案的最後一行
w、b、e
W、B、E
下一個字首、倒退一個字首、下一個字尾
大寫部分是包括空格
zz 將目前游標位置移動到畫面中間

一般模式 (Normal mode) 中編輯

鍵盤 說明
J 將下一行連接到目前行末 (Join)
~ 大小寫轉換
<ctrl>a、<ctrl>x 加、減游標位置的數字
可以處理 8、16 進位
>、< 縮排、取消縮排

待補充