Cheat Sheet 已經很多地方有了,這邊就不打算整理,我自己有整理幾個參考連結在結尾。
我常用的文件內移動方式
gg- 跳到第一行G- 跳到最後一行10G- 跳到第 10 行{- 跳到上一個空行}- 跳到下一個空行Ctrl + d- 往下滑半頁(Down)Ctrl + u- 往上滑半頁(Up)
Action - Around/Inner - Range
這是我最常用的組合之一:
Actionc- Changed- Deletey- Yankv- VISUAL
Around/Innera- Aroundi- Inner
rangew- Word{-{}[-[]"=""<-<>
舉例:
ciw- 刪掉當前文字,直接進入 INSERT 模式ci"- 刪掉""裡面的文字,直接進入 INSERT 模式yi(=>p- 複製()裡面的文字,並在下面貼上
另外我最常用的還有 vai,可以直接選取整個函數。但這好像只有 Neovim 裡面可以,Vim 裡面不行。
vai=><space>y- 複製整個函數到 clipboard(可以問 AI)vai=>d- 刪除整個函數vai=>gsa)- 在整個函數外面加上()(搭配mini-surround套件)vai=>gsat=>div- 在 HTML 裡面選取元素外面加上一層<div>元素vai=>gc- 註解整個函數vai=>y=>p- 複製整個函數,並貼上
把特定文字換成新的文字
VSCode 裡面:Cmd + Option + f
在 Vim 裡面:
:%s/old/new/gc- 把old替換成news- Substituteg- Globalc- Confirm(每個文字會跟你確認是否要替換)
:'<,'>%s/old/new/gc- 在 VISUAL 選取範圍內把old替換成new'<,'>- VISUAL 選取範圍
但我根本記不起來這個語法,所以我在 Neovim 裡面設定:
:R old/new=>:%s/old/new/gc:RV old/new=>:'<,'>%s/old/new/gc
在連續幾行開頭加上某些文字
Ctrl + v- 進入 VISUAL-BLOCK 模式j/k- 往上往下選取^- 把選取範圍每一行的游標移到句子開頭I- 在開頭前面進入 INSERT 模式- 輸入我想要的文字
- 按
Esc
在連續幾行結尾加上某些文字
Ctrl + v- 進入 VISUAL-BLOCK 模式j/k- 往上往下選取$- 把選取範圍每一行的游標移到句子結尾A- 在結尾後面進入 INSERT 模式- 輸入我想要的文字
- 按
Esc
把此行的所有空格換成換行
1. 尋找空格,替換成換行
f<space>- 尋找這行裡面的下一個空格r<enter>- 把游標上的這個空格替換成換行- 一直重複做以上兩步
2. 選取整行,把空格換成換行
V- 選取整行RV \ /\rRV- 前面提到的自定義替換方法\- 空格\r- 換行符號
以上只是我一些常用的技巧,如果有高手知道更多,歡迎在下面留言分享,讓更多人發現 Vim 的美好。
一些 Cheat Sheet 連結參考: