Linux vi 指令整理 | Vim 3 種模式與視覺模式

聯盟行銷揭露 Ver 3.1
聯盟行銷揭露 Ver 3.2(僅限行動版)
測試環境RHEL 系列AlmaLinux 9.8root 帳號2026-10-07 確認

打開 vi 卻輸入不了文字,或不知道怎麼離開而直接關掉視窗,這是第一次接觸伺服器的人都會經歷一次的事。 Linux vi 指令分成一般模式與插入模式,只要知道自己現在處於哪個模式,接下來按幾個鍵就能搞定。本文用表格整理了三種模式與各模式的指令,也讓你能在瀏覽器中的虛擬伺服器上親手輸入 vi。

在 AlmaLinux 9.8 中,vi 與 vim 都來自 vim 8.2 套件,本文的畫面與訊息都是用 vim 開啟的。如果尚未安裝,請用 [dnf -y install vim-enhanced] 安裝。

Linux vi 指令三種模式切換示意圖 Linux vi 指令:三種模式示意圖

✅ vi 的三種模式

vi 會依模式不同,讓同一個按鍵做不同的事。開啟檔案時會從一般模式開始,按 i 進入插入模式輸入文字,按 Esc 返回,再用冒號 [:] 進入末行模式,儲存並離開。

模式進入按鍵作用
一般模式(Normal mode)開啟 vi 時就是這個模式 · 在其他模式按 Esc移動游標、刪除、複製、貼上、復原
插入模式(Insert mode)i a I A o O輸入文字。畫面下方會顯示 [-- INSERT --]
末行模式(Last-line mode):儲存、離開、取代、設定行號。畫面下方會出現 :
視覺模式(Visual mode)v V Ctrl-v選取範圍後刪除、複製或一次輸入

在終端機開啟檔案的方法有三種。

指令說明
vi 檔名開啟檔案並從一般模式開始。檔案不存在時會新建,並顯示 [New]
vi +20 檔名開啟時把游標放在第 20 行
view 檔名= vi -R以唯讀方式開啟。修改時會出現 [W10] 警告,儲存時會出現 [E45]

在下方的虛擬伺服器輸入 [vi httpd.conf],就會開啟 vi,左側選單也會切換成 vi 內的指令。點選標籤,該按鍵就會輸入到畫面上,也可以直接用鍵盤輸入。

vi 指令模擬器vim 8.2
[root@server work]#
只在瀏覽器中運作,不會動到實際的檔案。先用 vi httpd.conf 開啟檔案,左側選單就會切換成 vi 內的指令。點選標籤,該按鍵就會輸入到畫面上,也可以直接用鍵盤輸入。用 :wq 儲存並離開後,可以用 cat 確認結果;操作亂掉時請按 [Start over]。表格中其餘的按鍵,請自己輸入試試看。

✅ Linux vi 指令整理

🔲 移動游標

按鍵說明
h j k l← ↓ ↑ →一次移動一格。也可以用方向鍵
0 · ^行首(0) · 該行第一個非空白字元(^)
$行尾
w · b · e下一個單字開頭 · 上一個單字開頭 · 下一個單字結尾
gg · G檔案第一行 · 最後一行
20G與 :20 相同移到第 20 行。換個數字就能移到想要的行
H · M · L畫面最上方 · 中間 · 最下方的行
Ctrl-f · Ctrl-b往下 · 往上一個畫面
Ctrl-d · Ctrl-u往下 · 往上半個畫面

🔲 進入插入模式

不論用哪個按鍵進入,輸入完畢後都要按 Esc。cw、cc、C、s 會在刪除的同時直接進入插入模式,所以修改單字或整行時,比分別按 x 和 i 更快。

按鍵說明
i · a在游標前(i) · 游標後(a)開始輸入
I · A在行首(I) · 行尾(A)開始輸入
o · O在下方(o) · 上方(O)新增空白行並開始輸入
cw刪除游標到單字結尾的內容並開始輸入
cc刪除整行並開始輸入
C刪除游標到行尾的內容並開始輸入
s刪除一個字元並開始輸入
Esc結束輸入,回到一般模式

🔲 刪除 · 修改

在 d 後面接移動鍵,就會刪除該範圍。dw 刪除單字、dd 刪除整行、dG 刪除到檔案結尾;前面加上數字,就會重複那麼多次。

按鍵說明
x · X刪除游標所在字元(x) · 游標前一個字元(X)。3x 是三個字元
dw刪除游標到單字結尾的內容
dd刪除整行。3dd 是三行
D= d$刪除游標到行尾的內容
d0刪除行首到游標前的內容
dG刪除目前這行到檔案結尾的內容
:6d · :6,10d刪除第 6 行 · 刪除第 6~10 行
J把下一行接到目前這行的結尾
r把游標所在字元換成接著輸入的字元
~切換大小寫
>> · <<整行增加縮排 · 減少縮排

🔲 複製 · 貼上 · 復原

刪除的內容也能像複製的內容一樣用 p 貼上,所以連續按 dd 和 p,就能把該行往下移。u 可以往回復原好幾個步驟,Ctrl-r 則會重做已復原的動作。

按鍵說明
yy複製整行。3yy 是三行
yw複製游標到單字結尾的內容
p · P把複製的內容貼到下方(p) · 上方(P)。若是以字元為單位複製,則貼到游標後 · 前
:1 co 7與 :1 t 7 相同複製第 1 行,貼到第 7 行下方
:1,7 co 8複製第 1~7 行,貼到第 8 行下方
:1 m 8把第 1 行移到第 8 行下方
u復原。多按幾次就會繼續往回復原
Ctrl-r重做已復原的動作
.重複上一次的變更

🔲 搜尋 · 取代

取代要在末行模式中進行。沒有指定範圍時只會作用於目前這行,加上 [%] 就是整個檔案;結尾沒有 g 的話,每行只會取代第一個符合的字串。

按鍵說明
/字串從游標往下搜尋。到達結尾時會從開頭繼續:[search hit BOTTOM, continuing at TOP]
?字串從游標往上搜尋
n · N同方向的下一個結果(n) · 反方向(N)
*往下搜尋游標所在的單字
:s/old/new/把目前這行的第一個 old 換成 new
:s/old/new/g把目前這行所有的 old 換成 new
:%s/old/new/g把整個檔案所有的 old 換成 new
:10,20s/old/new/g把第 10~20 行所有的 old 換成 new
:%s/old/new/gc逐一詢問後再取代(y 取代 · n 略過 · a 全部 · q 結束)

🔲 儲存 · 離開 · 行號

按鍵說明
:w儲存。完成後會顯示 [36L, 1094B written]
:w 檔名另存新檔。原本的檔案維持不變
:wq= :⁠x = ZZ儲存並離開
:q離開。如果有修改過,會出現 [E37: No write since last change]
:q!不儲存直接離開
:set nu · :set nonu顯示 · 隱藏行號

✅ 用 Vim 視覺區塊模式一次註解多行

要在多行開頭加入相同的文字時,不必每行都按 i,改用視覺區塊模式即可。在一般模式中,v 以字元為單位、Shift-v 以行為單位、Ctrl-v 以欄為單位選取範圍。

vim 視覺模式三種類型示意圖 vim 視覺模式:三種類型示意圖

以下是把設定檔中一整段內容一次註解掉的步驟。把游標放在第一行的第一個字元,按 Ctrl-v,再用 j 往下選取各行,接著按 I、輸入 #,最後按 Esc。

執行 vim 視覺區塊模式
1. 在第一行第一個字元按 Ctrl-v,就會出現 [– VISUAL BLOCK –]。
在 vim 視覺區塊模式中用游標選取行
2. 用 j 往下,選取所有要加上註解的行。
在 vim 視覺區塊編輯模式中輸入
3. 按 I 再輸入 #,此時只有第一行看得到。
vim 視覺區塊模式整欄編輯完成
4. 按 Esc 後,選取的每一行都會加上 #。

要取消註解時也一樣。在第一行的 # 上用 Ctrl-v 往下選取,再按 x,選取的欄就會一次刪除。可以直接在上方模擬器的 vhost.conf 中試試看。

  • vi、vim 指令
  • 文字處理指令
  • vi 編輯器結構:分為一般模式、插入模式、末行模式

ℹ️ 聯盟行銷說明
本站內容包含聯盟行銷連結。訪客透過這些連結購買商品或服務時,本站會從賣家獲得佣金。在這個過程中,購買者支付的金額(遇到活動折扣時金額會降低↓)並不會因此提高。刊登的價格、折扣與庫存資訊以撰寫當時為準,可能與實際情況不同,購買前請向賣家做最後確認。商品的挑選與評價依本站自訂的標準撰寫,是否支付佣金不會影響介紹順序或評價內容。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Prove your humanity: 1   +   5   =