簡明 Vim 文字編輯器操作入門教學


Posted by KD Chang on 2020-04-06

前言

vi 是一個在 UNIXUN*X 作業系統上非常普遍被使用的文字編輯器,而 vim 則是 vi 的強化版(Vi IMproved),是目前普遍主要使用的版本。

儘管目前已有許多的文字編輯器可以使用,例如:VS Code、Sublime Text、Atom 等,然而對於系統管理員、DevOps 或是一個軟體工程師來說,在日常工作上仍有許多情境需要使用到 vim(例如:操作 Git 文檔編輯、crontab 設定等)。若能熟悉基本的 vim 操作方式可以讓我們在終端機指令列操作時更加得心應手(最好的方式就是動手玩玩看,反正玩不用錢!),也讓工作更有效率。

對於喜歡且熟悉使用 vim 的使用者來說會覺得很好用,但一般初學者往往會覺得進入門檻有點高(若是看到密密麻麻的 Cheat Sheets 但卻不知道如何退出時更是如此)。因此本文將透過介紹 vim 使用模式情境和模式切換及常用的指令,讓讀者可以快速複習和熟悉這個平時常用的工具。

我已經使用了 vim 10 年了,因為我還不知道如何退出 - 程式笑話

接著就讓我們打開終端機,然後輸入以下指令進入 vim 的世界吧!

# 透過 vim 新增/編輯 demo.txt 這個檔案
$ vim demo.txt

模式介紹

vim 中透過模式的切換可以讓我們進行不同的工作情境。在 vim 中主要常見有四種模式:命令模式(Command mode),插入模式(Insert mode)和底線命令模式(Last line mode)、視覺模式(Visual mode)。當使用者處在不同模式的時候,鍵盤輸入會產生不同的作用。以下我們分別介紹不同模式的使用情境。

命令模式

命令模式為一開始進入 vim 的預設模式,在任何模式下鍵盤輸入 Esc 會回到這個預設模式中。若要切換到其他模式則使用鍵盤輸入:

i:切換到插入模式,可以輸入字串文字內容。
::切換到底線命令模式,可以在最底一行輸入操作指令。
v:切換到視覺模式,可以使用滑鼠游標選擇文字,方便閱讀和強調。
x:刪除游標所在字元

插入模式

鍵盤輸入 i 就可以進入插入模式,讓我們可以輸入文字編輯內容(也是主要的操作模式),鍵盤輸入 Esc 會回到命令模式。

常用其他指令:

Enter:換行
Back Space:刪除游標前一個字元
Del:刪除游標後一個字元
方向鍵:在文檔中移動游標
Page Up/Page Down:上/下翻頁

底線命令模式

鍵盤輸入 : 就可以進入底線命令模式,讓我們可以輸入指令操作內容。若要離開或是儲存離開 vim 就要透過底線命令模式輸入指令。若鍵盤輸入 Esc 會回到命令模式。

常用其他指令(謎之音:初學者記得要先學如何離開退出):

:q:不儲存直接離開
:q!:不儲存,強制直接離開(當有修改不想儲存時)
:e!:放棄所有修改,從上次儲存文件紀錄開始編輯
:w:儲存文檔但不離開
:!w:強制儲存文檔但不離開
:w {name}:儲存文檔並命名為 name,但不離開
:wq:儲存並離開
:!wq:強制儲存並離開

視覺模式

在命令模式輸入 v 可以進入視覺模式使用滑鼠游標選擇文字,方便閱讀和強調,鍵盤輸入 Esc 會回到命令模式。

更多常用指令和使用情境

[命令模式]游標移動

:0:移動到文件檔案的起點
:{number}:移動到第 {number} 行
:$:移動到文件檔案最後一行

[命令模式]刪除字元

x:刪除游標所在的字元
dd:刪除本行
{n}dd {n}:刪除游標所在的那一行往下數 {n} 行

[命令模式]複製貼上

yy:複製游標所在的那一行並放入暫存區
{n}yy:複製游標所在的那一行往下數 {n} 行並放入暫存區
p:複製暫存區的內容到游標所在下方
P:複製暫存區的內容到游標所在上方

[命令模式]復原

u:恢復之前的修改

[底線命令模式]搜尋取代

/{text}:往前尋找 {text} 字串於檔案位置
[範圍] s/{from}/{to}/g:在範圍(1, $ 代表全部檔案)中將 {from} 取代為 {to},/g。 為全部取代。(例如: 1, 4 s/name/username/g 為將 1-4 行字串中所有 name 改為 username

總結

以上簡單介紹 vim 的入門基礎操作模式:命令模式(Command mode),插入模式(Insert mode)和底線命令模式(Last line mode)、視覺模式(Visual mode)和常用指令,相信讀者已經可以入門 vim 文字編輯器的使用。

若我們能熟悉基本的 vim 操作方式可以讓我們在終端機指令列操作時更加得心應手,要熟悉 vim 最好的方式就是動手玩玩看,反正玩壞也不用錢,檔案再重新建立就好!對於初學者來說先熟悉模式的概念和最簡單的指令夠用就好,遇到不會的再自行查找是相對容易入門的方式。

參考文件

  1. Vim Cheat Sheet
  2. Vim cheatsheet
  3. vim

圖片來源


#vim #VI #文字編輯器









Related Posts

[第九週] PHP 與 MySQL 的互動:新增資料

[第九週] PHP 與 MySQL 的互動:新增資料

滲透測試重新打底(2.1)--論Enumeration(枚舉)之DNS Enumeration

滲透測試重新打底(2.1)--論Enumeration(枚舉)之DNS Enumeration

現代前端工具

現代前端工具




Newsletter




Comments