vim 實戰:20 個讓你效率翻倍的技巧
Vim 不僅是一個文字編輯器,更是一個強大的程式語言。對於經常在 Linux 伺服器上工作的開發者與系統管理員來說,熟練掌握 Vim 能顯著提升工作流效率。雖然入門曲線較陡,但一旦掌握核心邏輯,其無與倫比的效能與可定制性將成為你的得力助手。本文將精選 20 個實用技巧,分為基礎操作、選取編輯、搜尋替換、視窗管理與進階自動化五個區塊,幫助你從新手邁向高手。
一、基礎操作與游標移動
高效編輯的第一步是減少滑鼠依賴,完全使用鍵盤操作。
- 快速跳至行首/尾:使用
0(數字零)跳至行首,$跳至行尾。 - 快速跳至檔案首尾:
gg跳至檔案第一行,G跳至檔案最後一行。 - 快速跳至特定行:輸入行號後接
G,例如10G跳至第 10 行。 - 重複最後一次動作:按
.鍵。這在 Vim 中極具威力,例如你刪除了一行並修改了內容,複製該動作只需按.。 - 快速儲存與離開:
:wq儲存並離開,:q!強制放棄修改並離開。 - 復原與重做:
u復原上一步操作,Ctrl + r重做(Redo)。 - 跳至配對符號:在
(、)、{、}、[、]、<、>或'、"、'之間移動時,按%可快速跳至對應的配對符號。 - 移動半頁:
Ctrl + u向上捲動半頁,Ctrl + d向下捲動半頁。 - 移動整頁:
Ctrl + b向上捲動一整頁,Ctrl + f向下捲動一整頁。 - 查看檔案資訊:在正常模式下輸入
:set number顯示行號,:%s/\r$//g移除 Windows 換行符號(\r),解決跨平台編輯時的格式問題。
二、選取與編輯技巧
編輯的核心在於精確選取與修改。
- 視覺模式選取:進入視覺模式按
v,選取文字後可進行複製 (y)、刪除 (d) 或縮排 (>)。 - 區塊選取:按
Ctrl + v進入區塊(列)視覺模式,適合處理多行相同結構的程式碼,例如批量新增註解。 - 選取到行尾:在正常模式下按
Shift + v進入行視覺模式,選取整行。 - 快速複製行:在正常模式下按
yy複製當前行,p貼到游標下方。 - 快速刪除行:按
dd刪除當前行,內容會進入剪貼簿,可透過p貼上。 - 替換單字:
cw刪除游標處的字元並進入插入模式,方便快速修改變數名。 - 替換直到行尾:
c$刪除游標到行尾的內容並進入插入模式。 - 刪除直到行尾:
d$刪除游標到行尾的內容,常用於清理多餘空白。 - 交換兩個字元:在正常模式下按
xp,先刪除字元 (x) 再貼上 (p),實現位置交換。 - 自動縮排:選取多行程式碼後按
=,Vim 會根據語法自動調整縮排。
常見問題與解決
Q1: 為什麼我按鍵沒有反應,或者按 i 進入插入模式後無法退出?
這通常是因為 Vim 處於「正常模式」與「插入模式」混淆所致。請務必確認左下角狀態列顯示的是 -- INSERT --。若已誤入插入模式卻想執行指令,請先按 Esc 回到正常模式。若 Esc 無效,可嘗試按 Ctrl + [ 或 Ctrl + c。
Q2: 如何在 Vim 中搜尋並取代大量內容?
使用 :%s/舊文字/新文字/g 指令。例如,將檔案中所有的 error 改為 ERROR,輸入 :%s/error/ERROR/g 並按 Enter。若需確認取代範圍,可加上 c 參數::%s/error/ERROR/gc,Vim 會逐個詢問是否取代。
小結
掌握上述 20 個技巧,足以應對 90% 的日常編輯需求。建議初學者從 gg、dd、yy、u、: 等基礎指令開始練習,逐步建立肌肉記憶。Vim 的強大之處在於其一致性與可擴展性,隨著熟練度提升,你將能透過錄製宏(Macro)或配置 .vimrc 來進一步自動化重複性工作。記住,效率來自於減少不必要的動作,讓鍵盤成為你思考的延伸。