身為一個 Freelancer/學生,除了工作或學習以外,平常一定會常常跑來跑去。有時候可能家裡有臺電腦出去卻帶著筆電,或是時常帶著筆電到咖啡廳工作,卻沒辦法同步 VS Code 或是 Sublime Text 等等編輯器的設定、套件等等。這時,其實可以嘗試用 vim 開始工作。

當然,如果你有相關的伺服器架設經驗,你也可以試試 code-server

如果你有曾經碰過 Linux,那你一定印象有碰過 vi 或 vim 這種文字編輯器,它從 1991 發展到現在,可說是出了名的難用(大多數新手都不知道怎麼離開)有用,這麼多年來也發展了許多相關的外掛(和笑話)。而且只要你有臺機器可以透過 SSH 連線進去(像是使用學校的 Server、自己架的 Raspberry Pi、或是自己租的 雲端主機 服務),就能隨時隨地打開 vim。

vim 可是出了名的難關閉(搞笑圖,圖片取自 Freecodecamp):

escape_vim

這邊會推薦使用 vim 是因為軟體工程師時常會需要使用 Linux 來建立開發環境,甚至有許多工具、編譯器都是寫在 Linux 上為主。以 JS 工程師來說,可能會需要使用 nvm 來切換 Node 環境、或是在 Linux 上用 npm 安裝、編譯許多套件,而這些工具在 Windows 上安裝可能都比在 Linux 上安裝困難許多;以 C 工程師來說,在 Linux 上安裝 gcc 要比 Windows 上安裝 C 編譯器簡單多了;以學生來說,就有部分作業必須要在 Linux 系統上執行。

你可能只記得 vim 要用 i 進入到輸入模式、用 :wq:q 離開(不知道也沒關係),雖然 vim 的使用門檻有點高,但其實 vim 的功能超級五臟俱全,無論是 JS 工程師常用的 ESlint 檢查工具、emmet 語法補完工具,還是軟體工程師常用的 git 工具,都能在 vim 上面使用。

vim

這篇文章會講解基本的 vim 編輯器怎麼使用,之後的文章會再講怎麼把 vim 換成不同的主題、或是加上不同工程師常用的套件。

vim 基本教學

如果你的 Linux 系統沒有 vim 的話,請使用這個指令安裝 vim:

sudo apt-get install vim

首先我們可以用 vim 開啟一個檔案,例如 main.js:

vim main.js

打開之後會看到 vim 的樣子。預設會是空白,下面有一些資訊,無法打字。首先請先按下鍵盤的 i 鍵,這時會看到左下角出現「-- 插入 --」或「-- INSERT --」,表示進到插入模式,就可以開始正常打字。

想退出的話,並不是按 Ctrl+S 存檔或 Ctrl + C 離開,而是先按 Esc 離開插入模式,回到正常模式後,再輸入 :wq 存檔離開。

vim 和一般的編輯器有點不一樣,預設不是進到插入模式,所以無法自由的打字、編輯。這也是為什麼大多數的人(包含我)都會棄守 vim 跑去用 nano,因為通常很多 Linux 系統也會帶 nano,用起來簡單多了。

不過既然會有那麼多人還在推 vim,就是因為 vim 其實有很多好用的功能,以下舉一些常用的例子介紹。

好用的 vim 進階功能

說是進階其實也沒有多進階,就是在正常模式能使用的功能而已。

首先使用在正常模式下輸入冒號(:)開頭就可以使用許多指令,例如 :wq 可以存檔離開、:set nu 則可以顯示行號:

vim_nu

還有一個常用的是 :e [檔案名稱]。如果目前的檔案已經存檔的話,可以開啟新的檔案,像是 :e all.js 就可以在目前的視窗打開 all.js 檔案。

另外如果冒號後面輸入的不是指令,而是數字的話,就可以跳到指定的行數。例如 :23 可以跳到目前檔案的第 23 行。

此外也有不是冒號開頭的指令,像是直接按下鍵盤的 dd(也就是按 D 兩下,注意 vim 的指令是有分大小寫的),就能夠刪除一整行的文字。