前言
Vim 不只是編輯器,更是**文字處理 IDE**。本文系統整理宏錄製、多檔案標籤/分割、暫存器系統、書籤、可視模式區塊操作等進階功能,助你從「會用」進化到「好用」。
一、巨集:重複操作自動化
qa # 開始錄製,存入暫存器 a
...執行一系列編輯操作...
q # 結束錄製
@a # 執行一次巨集 a
20@a # 執行 20 次
應用場景:批次格式化程式碼、統一縮排、大量資料清洗。
二、標籤頁:多檔案並行編輯
| 命令 | 功能 |
:tabe file | 新標籤開啟檔案 |
gt / gT | 下一個 / 上一個標籤 |
:tabr / :tabl | 第一個 / 最後一個標籤 |
:tabm N | 移動當前標籤到第 N 位 |
三、分割視窗:同檔/多檔同屏
| 命令 | 功能 |
Ctrl+w s | 水平分割 |
Ctrl+w v | 垂直分割 |
Ctrl+w w | 切換視窗 |
Ctrl+w q | 關閉當前視窗 |
:sp file | 水平分割並開啟檔案 |
:vs file | 垂直分割並開啟檔案 |
四、緩衝區與暫存器系統
緩衝區(Buffer)
:e file # 載入檔案到新緩衝區
:bn / :bp # 下一個 / 上一個緩衝區
:bd # 刪除緩衝區(關閉檔案)
:ls # 列出所有緩衝區
暫存器
"ayy:複製當前行到暫存器 a
"ap:貼上暫存器 a 內容
"+p:貼上**系統剪貼簿**內容(需 vim 編譯支援 +clipboard)
"*p:貼上 X11 主選區(Linux 中鍵貼上)
五、書籤:標記與跳轉
ma # 在當前位置設定書籤 a (a-z, A-Z)
`a # 跳轉到書籤 a (精確到行列)
'a # 跳轉到書籤 a 所在行行首
六、搜尋與取代
| 命令 | 功能 |
/pattern | 向下搜尋 |
?pattern | 向上搜尋 |
n / N | 下一個 / 上一個匹配 |
:%s/old/new/g | 全檔取代 |
:%s/old/new/gc | 全檔取代並逐個確認 |
七、可視模式:區塊操作神器
| 鍵 | 模式 | 說明 |
v | 字元模式 | 逐字元選取 |
V | 行模式 | 整行選取 |
Ctrl+v | 區塊模式 | **矩形選取**(多行同欄位操作) |
區塊模式實戰
Ctrl+v 進入區塊模式
j/j 向下擴展選取多行
I 進入插入模式(在區塊左側)
輸入文字
Esc 套用到所有選取行
# 刪除區塊:選取後 d
# 複製區塊:選取後 y
# 縮排:選取後 > 或 <
# 大小寫轉換:選取後 ~
八、游標高速移動
| 鍵 | 動作 |
h/j/k/l | 左/下/上/右 |
w / b | 下一字首 / 上一字首 |
0 / ^ / $ | 行首 / 首非空白字元 / 行尾 |
gg / G | 檔案首 / 尾 |
% | 跳至匹配括號 |
fx / tx | 本行尋找字元 x / 至 x 前一字元 |
'. | 上次編輯位置 |
H / M / L | 螢幕頂 / 中 / 底行 |
九、編輯微操
| 鍵 | 功能 |
xp | 交換相鄰字元 |
J | 合併下一行 |
cc / cw / c$ | 改寫整行/字/至行尾 |
u / Ctrl+r | 復原 / 重做 |
. | 重複上一編輯 |
~ / g~iw / gUiw / guiw | 切換大小寫 / 整字大寫 / 小寫 |
>><< / == | 縮排右/左 / 自動縮排 |
十、插入模式進階
| 鍵 | 進入位置 |
i | 游標前 |
I | 行首非空白 |
a | 游標後 |
A | 行尾 |
o / O | 下/上新行 |
結語
Vim 學習曲線陡峭,但**肌肉記憶一旦形成,編輯速度無可匹敵**。建議每天掌握 1-2 個新指令,配合 :help 深入理解,半年後你會感謝今天的自己。