Cheat Sheet 已經很多地方有了,這邊就不打算整理,我自己有整理幾個參考連結在結尾。
我常用的文件內移動方式
gg
- 跳到第一行G
- 跳到最後一行10G
- 跳到第 10 行{
- 跳到上一個空行}
- 跳到下一個空行Ctrl + d
- 往下滑半頁(Down)Ctrl + u
- 往上滑半頁(Up)
Action - Around/Inner - Range
這是我最常用的組合之一:
Action
c
- Changed
- Deletey
- Yankv
- VISUAL
Around/Inner
a
- Aroundi
- Inner
range
w
- 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
替換成new
s
- 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 \ /\r
RV
- 前面提到的自定義替換方法\
- 空格\r
- 換行符號
以上只是我一些常用的技巧,如果有高手知道更多,歡迎在下面留言分享,讓更多人發現 Vim 的美好。
一些 Cheat Sheet 連結參考: