Vim 與 nano:你應該選擇哪個?

我們需要利用文本編輯器來做筆記、寫程序,或者編輯系統配置文件來完成一些事情。

不管你用來做什麼,你的 Linux 發行版已經預裝了文本編輯器。

你很可能會注意到一些 最好的現代文本編輯器,如 Gedit、Geany、Kate 等,它們已經預裝在你的 Linux 發行版中。然而,這些都是基於 GUI 的程序。

如果你想通過終端訪問文本編輯器怎麼辦?你應該發現它也內置在你的 Linux 發行版中了。

Vim 和 nano 是最流行的 CLI 文本編輯器 之二。

但是,是什麼讓它們如此受歡迎?你應該選擇哪個作爲你的文本編輯器?讓我指出一下 Vim 和 nano 的區別,以幫助你決定。

1、基於終端的編輯器介紹

nano 和 Vim 都提供了大部分的基本功能。雖然 nano 在大多數 Linux 發行版上是內置的,但你必須手動安裝 Vim。

爲了比較這兩者,讓我給你簡單介紹一下這兩者。

Vim

Vim 是 “Vi” 文本編輯器的改進版,開發於 1991 年。Vim 是 “Vi 改進版 Vi IMproved” 的意思。

Vi 是一個基於終端的文本編輯器,最初於 1976 年爲 Unix 操作系統而開發。Vim 是它的一個具有現代功能的增強版。

考慮到它的各種功能可以幫助編輯程序文件,它也被稱爲 “程序員的文本編輯器”。雖然它提供了一些高級功能,但你也可以用來編輯純文本文件。

GNU nano

GNU nano(我們在文章中稱它爲 “nano”)是一個簡單的基於終端的文本編輯器,其靈感來自於 Pico —— 這個基於 Unix 的文本編輯器是華盛頓大學 1989 年開發的 Pine 電子郵件套件的一部分。

Pico 文本編輯器沒有 GPL(許可證),這使得它很難被納入 Linux 發行版。

因此,nano 被開發出來作爲它的自由軟件替代品。nano 編輯器最初被稱爲 “tip”,然後在 Richard Stallman 宣佈它成爲正式的 GNU 程序之前重新命名爲 nano。

這個編輯器的亮點是它的易用性和極小的學習曲線。你不一定需要成爲程序員才能使用 nano。

2、功能差異

下面是 Vim 和 nano 的主要功能差異:

Vim 的主要特點

nano 的主要特點

請注意,一般來說,Vim 提供了更高級的功能。然而,它們都提供了編輯系統配置文件、編程和文本編輯等基本功能。

3、用作文本編輯器

在 Vim 或 nano 中打開一個文件很簡單,只要輸入你想使用的編輯器的名字,然後再輸入文件的路徑。路徑可以是文件的絕對路徑,也可以是文件的相對路徑。

vim Documents/text.txt
nano Documents/text.txt

但是,除了用作文本編輯器訪問或打開一個文件之外,還有很多功能,對嗎?

如果你想快速比較一下,這裏有一些基於我的使用情況的比較點:

Vim:

nano:

nano 和 Vim 的主要區別在於,它們的目標受衆非常不同。

Vim

Vim 是一個模式驅動的編輯器。這意味着字母、數字和標點符號鍵在按下時都要做一件獨特的事情,而不是在屏幕上打出一個字符。

這些模式包括:

默認情況下,當你啓動 Vim 時,它以 正常 模式打開。每個鍵都有其獨特的功能,不會立即開始輸入所按下的字符。

不管什麼模式,如果你願意,你也可以把 Vim 配置成一個寫作工具。

當你啓動 Vim(無參數)時的終端屏幕

在正常模式下,按特定的鍵會移動你的光標。

例如,如果你按下 l(小寫字母 L),它將把光標向右移動一個字符,按 h 鍵將把光標向左移動一個字符。

如果你想把光標向下移動一行,你就按 j 鍵,如果要把光標向上移動一行,你應該按 k 鍵。

在正常模式下 lkjh 是導航鍵。雖然你可以用方向鍵來移動,但這樣做更有效率。

這些是 Vim 中的基本導航鍵。

接下來最常用的鍵是 wbe

你甚至可以用這些鍵混合數字(作爲前綴)。例如,按 6w 可以將光標向前(向右)移動六個詞。

如果你想進入一個模式,你必須按類似的組合鍵:

最後,我們已經 列出了退出 Vim 的多種方法 [1],如果你想了解一下的話。

這只是冰山一角。要學習更多關於 Vim 的知識,你可以使用vimtutor 命令,它可以給你提供大多數基本命令的信息,如刪除、編輯、保存文件等。

GNU nano

nano 有一個基本的交互界面,在窗口的底部給你提供關鍵信息。

![Terminal screen when you launch nano without argumentswithoutarguments] 13

你不需要參考手冊頁或任何文檔來執行基本操作。這就是爲什麼與 Vim 相比,nano 被認爲是用戶友好的。

儘管如此,nano 中使用的一些術語仍然是 “舊術語”,一個例子是 “寫出 Write Out”、“在哪裏 Where Is” 短語,而不是分別用 “保存 Save” 和“查找 Find”。

但是,這並不是什麼大問題。

雖然很容易習慣,但它與使用記事本或 Gedit(GUI 程序)並不完全相同。

例如,在大多數現代編輯器中,執行剪切操作的組合鍵通常是 Ctrl + X,但在 nano 中,它是 Ctrl + K

符號 ^ 是用來表示將 Ctrl 鍵作爲修飾鍵使用,並與旁邊的鍵組合使用。

你還可以找到像 Ctrl + F(將光標向前移動)、Ctrl + B(將光標向後移動)這樣的組合鍵。一些快捷鍵包括:

你可以看看 GNU nano 的官方速查表 [2] 來學習更多的快捷鍵。

總的來說,nano 是一個更適合初學者的編輯器,當你只想偶爾編輯一個文件時,它可以簡單地讓你完成。

4、學習曲線

考慮到上面的所有信息,你一定已經意識到 Vim 與你所習慣的傳統文本編輯器不同。

這是真的,這就是爲什麼 Vim 在學習的初始階段會顯得很艱難。

然而,對於高級用戶來說,使用宏、自動補完等高級能力很重要,可以節省時間。

因此,如果你是一個程序員,或者碰巧經常編輯許多文件,Vim 的學習曲線可能是富有成效的。

另一方面,nano 提供了極小的學習曲線,而且感覺比基於圖形用戶界面的文本編輯器如 Gedit 或 Notepad 更讓你熟悉。

哪個是最適合你的?

Vim 和 nano 都是合格的基於終端的文本編輯器。但是,當涉及到你如何與上述編輯器互動和使用時,它們有很大的不同。

Vim 很靈活,可以適應各種工作流程,前提是你已經習慣了它的工作方式。

相比之下,nano 工作起來很簡單,可以幫助你編輯任何你想要的東西。

如果你還不確定,我建議先開始使用 nano。而且,如果你認爲你需要更快地完成工作,並且想要更多的功能,那麼就換成 Vim。

常見的問題

繼續,讓我來談談幾個問題,這將有助於你獲得一個良好的開端。

Vim 比 nano 好嗎?

從技術上講,是的。但是,如果你不需要它提供的所有功能,使用起來可能會感到力不從心。

程序員是否使用 Vim?

系統管理員和程序員喜歡 Vim 的高級功能。所以,是的,他們傾向於使用它。

nano 是否更受歡迎?

可以說是的。nano 是一個基於終端的編輯器,被大多數用戶使用。此外,它還內置在大多數 Linux 發行版中。

因此,它在用戶中普遍受歡迎,而 Vim 仍然是一個爲特定人羣服務的編輯器。

參考資料

[1]

列出了退出 Vim 的多種方法: https://itsfoss.com/how-to-exit-vim/

[2]

GNU nano 的官方速查表: https://www.nano-editor.org/dist/latest/cheatsheet.html

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/v3wPZFCny2chKbCex1htlw