Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux vi/vim 編輯器完整指令速查表:三大模式、游標移動、編輯、搜尋取代、存檔離開

編輯:Linux 系統常見問題解答

vi/vim 是 Linux 系統管理員的必修基本功。本文將龐大指令集整理為三大模式、六大功能分類的速查表,收藏即用,無需背誦。

核心概念:三大模式切換


+----------------+      i, a, o      +-----------------+
|  命令模式      |  ---------------> |  輸入模式       |
|  (預設、導航)  |  <--------------- |  (打字、編輯)   |
|                |       ESC         |                 |
+----------------+                   +-----------------+
        |                                     ^
        | : / ?                               |
        v                                     |
+----------------+                   (底線命令模式合併於命令模式說明)
|  底線命令模式   |
|  (存檔、設定、   |
|   搜尋、離開)   |
+----------------+

一、游標移動(命令模式)

按鍵動作記憶
h / j / k / l左 / 下 / 上 / 右鍵盤右側排列,j 似下鉤
0 (零)行首數字 0 起始
^行首第一個非空白字元
$行尾正則表達式行尾符
w / b / e下一字首 / 上一字首 / 字尾word / back / end
gg / G檔案首行 / 末行go go / Go end
nG / :n跳至第 n 行
Ctrl+f / Ctrl+b向下/上翻一頁forward / back
Ctrl+d / Ctrl+u向下/上翻半頁down / up
%跳至配對括號 ( ) { } [ ]程式碼對齊神器

二、進入輸入模式(命令模式)

按鍵動作
i游標前插入
I行首非空白處插入
a游標後附加
A行尾附加
o下方新增一行並插入
O上方新增一行並插入
s刪除游標字元並進入插入
S刪除整行並進入插入

三、刪除與剪貼(命令模式)

指令動作
x / X刪除游標後/前單一字元
dw / db / d$ / d^刪至字尾/字首/行尾/行首非空白
dd刪除整行 (剪下)
ndd刪除 n 行 (含當前行)
D刪除至行尾 (同 d$)
yw / y$ / yy複製字元/至行尾/整行
nyy複製 n 行
p / P貼上於游標後/前
"ayy / "ap複製/貼上至名為 a 的暫存器 (26 個 a-z)

四、搜尋與取代(底線命令模式)

指令動作
/keyword向下搜尋 (n 下一個, N 上一個)
?keyword向上搜尋
:set hlsearch高亮所有匹配
:set nohlsearch關閉高亮
:s/old/new當前行首次匹配取代
:s/old/new/g當前行所有匹配取代
:%s/old/new/g全檔所有匹配取代
:%s/old/new/gc全檔取代並逐個確認
:n,m s/old/new/g第 n 到 m 行取代

五、撤銷、重複、視窗操作

指令動作
u撤銷 (多級)
Ctrl+r重做
.重複上一個編輯指令
:sp / :vsp水平/垂直分割視窗
Ctrl+w, 方向鍵切換視窗焦點
:tabnew / gt / gT新分頁 / 下一分頁 / 上一分頁

六、存檔與離開(底線命令模式)

指令動作
:w存檔
:w filename另存新檔
:wq / :x存檔並離開
:q!強制離開 (不存檔)
:wq!強制存檔離開 (需權限)
:set nu / :set nonu顯示/隱藏行號
:set ts=4 / :set expandtabTab 寬度 4 / 展開為空白

進階必學:vimrc 基礎設定


" ~/.vimrc
set number              " 顯示行號
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent
set smartindent
set hlsearch
set incsearch
set ignorecase
set smartcase
syntax on
filetype plugin indent on
set mouse=a             " 滑鼠支援
set clipboard=unnamedplus " 系統剪貼板整合

熟練上表 80% 指令,日常編輯、程式碼審查、設定檔修改已無障礙;剩餘 20% 遇到再查,漸進式精通 vim 之道。

Copyright © Windows教程網 All Rights Reserved