Vim 作為編輯器之神,掌握核心命令能將編碼效率提升數倍。本文整理 130 個高頻命令,按功能分類,附帶記憶口訣,適合打印為速查卡。
📁 基礎操作
| 命令 | 功能 | 記憶 |
:e filename | 打開檔案編輯 | Edit |
:w | 保存 | Write |
:q | 退出 | Quit |
:q! | 強制退出不保存 | Quit! |
:x / :wq | 保存並退出 | eXit / Write Quit |
:sav file | 另存為 | SAVe |
. | 重複上次普通模式操作 | 點號 |
5. | 重複 5 次 | 數字+點 |
🧭 游標移動
| 命令 | 功能 | 分類 |
h/j/k/l / 方向鍵 | 左/下/上/右 | 基本 |
w / b / e | 下一詞首 / 上一詞首 / 詞尾 |
0 / ^ / $ | 行首 / 首非空白 / 行尾 |
gg / G | 檔案首 / 檔案尾 |
:59 / 59G | 跳轉第 59 行 |
20| | 跳轉第 20 列 |
% | 跳轉匹配括號 | 代碼結構 |
[[ / ]] | 函數開頭 / 結尾 |
[{ / }] | 塊開頭 / 結尾 |
✂️ 複製、剪切、粘貼
| 命令 | 功能 |
y / yy | 複製選中 / 複製整行 |
p / P | 游標後 / 前粘貼 |
dd / D | 剪切整行 / 剪切至行尾 |
y$ | 複製至行尾 |
x / X | 刪除游標後 / 前字符 |
🔍 搜尋與替換
| 命令 | 功能 |
/pattern / ?pattern | 向下 / 向上搜尋 |
* / # | 搜尋游標下單詞(向下/向上) |
n / N | 下一個 / 上一個匹配 |
:%s/old/new/g | 全檔替換 |
:%s/old/new/gc | 全檔替換並確認 |
:2,35s/old/new/g | 第 2-35 行替換 |
:%s/^M//g | 刪除 DOS 換行符 (^M) |
:%s/#<[^>]+>##g | 刪除 HTML 標籤保留文本 |
🔠 大小寫轉換
| 命令 | 功能 |
guu / gUU | 整行小寫 / 大寫 |
g~~ | 整行大小寫反轉 |
veu / veU | 單詞小寫 / 大寫 |
ggguG / gggUG | 全檔小寫 / 大寫 |
:%s/\<./\u&/g | 每詞首字母大寫 |
:%s/\<./\l&/g | 每詞首字母小寫 |
📂 多檔案與分屏
| 命令 | 功能 |
:e . / :Sex | 內建檔案瀏覽器 / 分屏瀏覽 |
:ls / :b 2 | 列出緩衝區 / 切換到 #2 |
:split file / :vsplit file | 水平 / 垂直分屏打開 |
Ctrl-w w / Ctrl-w ↑↓←→ | 循環切換 / 方向切換窗口 |
Ctrl-w = / Ctrl-w _ / Ctrl-w | | 等高寬 / 最大化高 / 最大化寬 |
:hide / :only | 關閉當前 / 關閉其他窗口 |
🏷️ 標籤頁
| 命令 | 功能 |
:tabnew / gt / gT | 新標籤 / 下一個 / 上一個 |
:tabfirst / :tablast | 首個 / 末個標籤 |
:tabm N | 移動到第 N 位置 |
:tabdo %s/foo/bar/g | 所有標籤執行替換 |
:tab ball | 所有緩衝區各佔一標籤 |
🔖 標記與縮寫
| 命令 | 功能 |
ma / 'a | 標記位置 a / 跳轉到標記 a |
'' | 跳轉回上一位置 |
:ab mail user@domain.com | 定義縮寫,輸入 mail 自動展開 |
📐 縮排與對齊
| 命令 | 功能 |
>> / << | 增加 / 減少縮排 |
=% | 匹配括號間代碼格式化 |
1GVG= | 全檔格式化 |
:set shiftwidth=4 | 設定縮排寬度 |
:set autoindent / smartindent | 自動縮排 / 智能縮排 |
🎨 語法高亮與其他
| 命令 | 功能 |
:syntax on/off | 開啟/關閉語法高亮 |
:set syntax=perl | 強制指定語法 |
:set ignorecase / smartcase | 搜尋忽略大小寫 / 智能大小寫 |
Ctrl-a / Ctrl-x | 數字增 / 減 |
ggVGg? | 全檔 Rot13 加密 |
💡 進階技巧精選
- 宏錄製:
qa 開始錄製到寄存器 a,q 結束,@a 執行,10@a 執行 10 次。
- 列編輯:
Ctrl-v 進入視覺塊模式,選中列,I 插入,Esc 生效。
- 外部命令:
!cmd 執行 Shell 命令,!!date 插入日期,:r !ls 讀入命令輸出。
- 會話管理:
:mksession session.vim 保存會話,vim -S session.vim 恢復。
建議將本表導出為 PDF 或列印貼在顯示器邊,每天練習 3-5 個新命令,三個月後肌肉記憶將讓你飛馳於代碼海洋。