本文列出了 Vim 中最常用(而不是全部)的命令和快捷鍵,請善用查找。

Vim 鍵位表
全局命令#
| 命令 / 快捷鍵 | 功能描述 |
|---|---|
| elp 关键字 | 顯示指定關鍵字的幫助 |
| eas 文件名 | 另存為... |
| se | 關閉當前窗口 |
| minal | 打開新的終端窗口 |
| :! 命令 | 暫時離開 Vim 到命令行下執行 命令 的顯示結果 |
| K | 打開光標所在單詞對應的 man 頁面 |
移動光標#
| 命令 / 快捷鍵 | 功能描述 |
|---|---|
| h | 左移光標 |
| j | 下移光標 |
| k | 上移光標 |
| l | 右移光標 |
| H | 移動到當前頁面頂部 |
| M | 移動到當前頁面中間 |
| L | 移動到當前頁面底部 |
| w | 移動到下個單詞開頭 |
| W | 移動到下個單詞開頭(單詞含標點) |
| e | 移動到下個單詞結尾 |
| E | 移動到下個單詞結尾(單詞含標點) |
| b | 移動到上個單詞開頭 |
| B | 移動到上個單詞開頭(單詞含標點) |
| % | 跳轉到配對的符號 |
| 0 | 移動到行首 |
| ^ | 移動到行首的非空白符 |
| $ | 移動到行尾 |
| } | 移動到下下一段落(當編輯代碼時則為函數/代碼塊) |
| { | 移動到上上一段落(當編輯代碼時則為函數/代碼塊) |
| zz | 移動螢幕使光標居中 |
| Ctrl + e | 向下移動螢幕一行(保持光標不動) |
| Ctrl + y | 向上移動螢幕一行(保持光標不動) |
| Ctrl + b | 向上滾動一屏 |
| Ctrl + f | 向下滾動一屏 |
| Ctrl + d | 向下滾動半屏 |
| Ctrl + u | 向上滾動半屏 |
插入模式#
| 命令 / 快捷鍵 | 功能描述 |
|---|---|
| i | 從光標前開始插入字符 |
| I | 從行首開始插入字符 |
| a | 從光標後開始插入字符 |
| A | 從行尾開始插入字符 |
| o | 在當前行之下另起一行,開始插入字符 |
| O | 在當前行之上另起一行,開始插入字符 |
| ea | 從當前單詞末尾開始插入 |
| Ctrl + h | 在插入模式下,刪除光標前的字符 |
| Ctrl + w | 在插入模式下,刪除光標前的單詞 |
| Ctrl + j | 在插入模式下,另起一行 |
| Ctrl + t | 在插入模式下,向右縮進,寬度由 shiftwidth 控制 |
| Ctrl + d | 在插入模式下,向左縮進,寬度由 shiftwidth 控制 |
| Ctrl + n | 在插入模式下,在光標之前插入自動補全的下一個匹配項 |
| Ctrl + p | 在插入模式下,在光標之前插入自動補全的上一個匹配項 |
| Ctrl + rx | 在當前光標處插入 x 寄存器的內容 |
| Esc | 退出插入模式 |
編輯文本#
| 命令 / 快捷鍵 | 功能描述 |
|---|---|
| u | undo - 撤銷最近一次操作 |
| U | 恢復 / 撤銷最後修改的行 |
| Ctrl + r | redo - 重做(和 u 相反) |
| . | 再次執行上個命令 |
選擇文本和可視化模式#
| 命令 / 快捷鍵 | 功能描述 |
|---|---|
| v | 進入可視化模式,移動光標高亮選擇,然後,可以對被選中的文本執行命令 |
| V | 進行可視化模式,以行為單位進行選擇 |
| o | 在可視化模式下,讓光標在選擇區域的開頭和結尾進行切換 |
| O | 在可視化模式下,切換光標到選擇區域的角 |
| Ctrl + v | 進入可視化模式,矩陣選擇(即列模式) |
| aw | 在可視化模式下,選擇當前單詞 |
| ab | 在可視化模式下,選擇被 () 包裹的區域的內容(包含括號) |
| aB | 在可視化模式下,選擇被 {} 包裹的區域的內容(包含花括號) |
| at | 在可視化模式下,選擇被 <> 包裹的區域的內容(包含 <> 標籤) |
| ib | 在可視化模式下,選擇被 () 包裹的區域的內容(不包含括號) |
| iB | 在可視化模式下,選擇被 {} 包裹的區域的內容(不包含花括號) |
| it | 在可視化模式下,選擇被 <> 包裹的區域的內容(不包含 <> 標籤) |
| Esc | 退出可視化模式 |
| > | 向右縮進 |
| < | 向左縮進 |
| y | 複製選中的文本 |
| d | 剪切選中的文本 |
| ~ | 對選中的文本進行大小寫切換 |
| u | 將選中的文本轉換為小寫 |
| U | 將選中的文本轉換為大寫 |
退出#
| 命令 / 快捷鍵 | 功能描述 |
|---|---|
| 將編輯的數據寫入硬碟中 (保存) | |
| ! | 若文件屬性為「只讀」時,強制寫入該文件 |
| !sudo tee % | 使用 sudo 保存當前文件 |
| 或 或 ZZ | 保存並退出 |
| 退出(文件已修改且未保存時 Vim 將發出警告) | |
| ! 或 ZQ | 強制退出(即使文件未保存,相當於強制退出) |
| 保存所有標籤頁,並全部退出 |
Vim 模式#
| 模式 | 進入方式 |
|---|---|
| 普通模式 | 按 Esc 或 Ctrl+[ 進入,左下角為文件名或空 |
| 插入模式 | 按 i 進入,左下角 --INSERT-- |
| 可視模式 | 按 v 進入,左下角 --VISUAL-- |
| 替換模式 | 按 r 或 R 開始,左下角 --REPLACE-- |
| 命令行模式 | 按:或者 / 或者?開始 |
