Vim 與 nano:你應(yīng)該選擇哪個(gè)?
我們需要利用文本編輯器來(lái)做筆記、寫(xiě)程序,或者編輯系統(tǒng)配置文件來(lái)完成一些事情。
不管你用來(lái)做什么,你的 Linux 發(fā)行版已經(jīng)預(yù)裝了文本編輯器。
你很可能會(huì)注意到一些?最好的現(xiàn)代文本編輯器,如 Gedit、Geany、Kate 等,它們已經(jīng)預(yù)裝在你的 Linux 發(fā)行版中。然而,這些都是基于 GUI 的程序。
如果你想通過(guò)終端訪問(wèn)文本編輯器怎么辦?你應(yīng)該發(fā)現(xiàn)它也內(nèi)置在你的 Linux 發(fā)行版中了。
Vim 和 nano 是最流行的?CLI 文本編輯器?之二。
但是,是什么讓它們?nèi)绱耸軞g迎?你應(yīng)該選擇哪個(gè)作為你的文本編輯器?讓我指出一下 Vim 和 nano 的區(qū)別,以幫助你決定。

1、基于終端的編輯器介紹
nano 和 Vim 都提供了大部分的基本功能。雖然 nano 在大多數(shù) Linux 發(fā)行版上是內(nèi)置的,但你必須手動(dòng)安裝 Vim。
為了比較這兩者,讓我給你簡(jiǎn)單介紹一下這兩者。

Vim

Vim 是 “Vi” 文本編輯器的改進(jìn)版,開(kāi)發(fā)于 1991 年。Vim 是 “Vi 改進(jìn)版” 的意思。
Vi 是一個(gè)基于終端的文本編輯器,最初于 1976 年為 Unix 操作系統(tǒng)而開(kāi)發(fā)。Vim 是它的一個(gè)具有現(xiàn)代功能的增強(qiáng)版。
考慮到它的各種功能可以幫助編輯程序文件,它也被稱(chēng)為“程序員的文本編輯器”。雖然它提供了一些高級(jí)功能,但你也可以用來(lái)編輯純文本文件。

GNU nano

GNU nano(我們?cè)谖恼轮蟹Q(chēng)它為 “nano”)是一個(gè)簡(jiǎn)單的基于終端的文本編輯器,其靈感來(lái)自于 Pico —— 這個(gè)基于 Unix 的文本編輯器是華盛頓大學(xué) 1989 年開(kāi)發(fā)的 Pine 電子郵件套件的一部分。
Pico 文本編輯器沒(méi)有 GPL(許可證),這使得它很難被納入 Linux 發(fā)行版。
因此,nano 被開(kāi)發(fā)出來(lái)作為它的自由軟件替代品。nano 編輯器最初被稱(chēng)為 “tip”,然后在 Richard Stallman 宣布它成為正式的 GNU 程序之前重新命名為 nano。
這個(gè)編輯器的亮點(diǎn)是它的易用性和極小的學(xué)習(xí)曲線。你不一定需要成為程序員才能使用 nano。

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

Vim 的主要特點(diǎn)

nano 的主要特點(diǎn)
請(qǐng)注意,一般來(lái)說(shuō),Vim 提供了更高級(jí)的功能。然而,它們都提供了編輯系統(tǒng)配置文件、編程和文本編輯等基本功能。

3、用作文本編輯器
在 Vim 或 nano 中打開(kāi)一個(gè)文件很簡(jiǎn)單,只要輸入你想使用的編輯器的名字,然后再輸入文件的路徑。路徑可以是文件的絕對(duì)路徑,也可以是文件的相對(duì)路徑。
vim Documents/text.txt
nano Documents/text.txt
但是,除了用作文本編輯器訪問(wèn)或打開(kāi)一個(gè)文件之外,還有很多功能,對(duì)嗎?
如果你想快速比較一下,這里有一些基于我的使用情況的比較點(diǎn):
Vim:
nano:
nano 和 Vim 的主要區(qū)別在于,它們的目標(biāo)受眾非常不同。

Vim
Vim 是一個(gè)模式驅(qū)動(dòng)的編輯器。這意味著字母、數(shù)字和標(biāo)點(diǎn)符號(hào)鍵在按下時(shí)都要做一件獨(dú)特的事情,而不是在屏幕上打出一個(gè)字符。
這些模式包括:
默認(rèn)情況下,當(dāng)你啟動(dòng) Vim 時(shí),它以?正常?模式打開(kāi)。每個(gè)鍵都有其獨(dú)特的功能,不會(huì)立即開(kāi)始輸入所按下的字符。
不管什么模式,如果你愿意,你也可以?把 Vim 配置成一個(gè)寫(xiě)作工具。

當(dāng)你啟動(dòng) Vim(無(wú)參數(shù))時(shí)的終端屏幕
在正常模式下,按特定的鍵會(huì)移動(dòng)你的光標(biāo)。
例如,如果你按下?l(小寫(xiě)字母 L),它將把光標(biāo)向右移動(dòng)一個(gè)字符,按?h?鍵將把光標(biāo)向左移動(dòng)一個(gè)字符。
如果你想把光標(biāo)向下移動(dòng)一行,你就按?j?鍵,如果要把光標(biāo)向上移動(dòng)一行,你應(yīng)該按?k?鍵。
在正常模式下?l、k、j、h?是導(dǎo)航鍵。雖然你可以用方向鍵來(lái)移動(dòng),但這樣做更有效率。
這些是 Vim 中的基本導(dǎo)航鍵。
接下來(lái)最常用的鍵是?w、b、e:
w?鍵可將光標(biāo)移到下一個(gè)詞。如果它已經(jīng)在一個(gè)詞的開(kāi)頭,它就會(huì)移動(dòng)到下一個(gè)詞的開(kāi)頭。b?鍵,光標(biāo)會(huì)移到左邊的詞的開(kāi)頭。e?鍵,則將光標(biāo)移到右邊的詞的末尾。你甚至可以用這些鍵混合數(shù)字(作為前綴)。例如,按?6w?可以將光標(biāo)向前(向右)移動(dòng)六個(gè)詞。
如果你想進(jìn)入一個(gè)模式,你必須按類(lèi)似的組合鍵:
i?為插入模式CTRL+C?回到正常模式:wq?寫(xiě)入文件并關(guān)閉窗口。最后,我們已經(jīng)?列出了退出 Vim 的多種方法,如果你想了解一下的話。
這只是冰山一角。要學(xué)習(xí)更多關(guān)于 Vim 的知識(shí),你可以使用vimtutor?命令,它可以給你提供大多數(shù)基本命令的信息,如刪除、編輯、保存文件等。


GNU nano
nano 有一個(gè)基本的交互界面,在窗口的底部給你提供關(guān)鍵信息。
要想有個(gè)初步的了解,你可以參考我們的?nano 編輯器指南。
![Terminal screen when you launch nano?without arguments]?13
你不需要參考手冊(cè)頁(yè)或任何文檔來(lái)執(zhí)行基本操作。這就是為什么與 Vim 相比,nano 被認(rèn)為是用戶(hù)友好的。
盡管如此,nano 中使用的一些術(shù)語(yǔ)仍然是“舊術(shù)語(yǔ)”,一個(gè)例子是 “寫(xiě)出”、“在哪里”短語(yǔ),而不是分別用“保存”和“查找”。
但是,這并不是什么大問(wèn)題。
雖然很容易習(xí)慣,但它與使用記事本或 Gedit(GUI 程序)并不完全相同。
例如,在大多數(shù)現(xiàn)代編輯器中,執(zhí)行剪切操作的組合鍵通常是?Ctrl + X,但在 nano 中,它是?Ctrl + K。
符號(hào)?^?是用來(lái)表示將?Ctrl?鍵作為修飾鍵使用,并與旁邊的鍵組合使用。
你還可以找到像?Ctrl + F(將光標(biāo)向前移動(dòng))、Ctrl + B(將光標(biāo)向后移動(dòng))這樣的組合鍵。一些快捷鍵包括:
Ctrl + X?退出Ctrl + O?寫(xiě)入(或保存為)Alt + U?撤銷(xiāo)上一個(gè)動(dòng)作Ctrl + ←?向后退一個(gè)字Ctrl + →?向前進(jìn)一個(gè)字你可以看看?GNU nano 的官方速查表?來(lái)學(xué)習(xí)更多的快捷鍵。
總的來(lái)說(shuō),nano 是一個(gè)更適合初學(xué)者的編輯器,當(dāng)你只想偶爾編輯一個(gè)文件時(shí),它可以簡(jiǎn)單地讓你完成。

4、學(xué)習(xí)曲線
考慮到上面的所有信息,你一定已經(jīng)意識(shí)到 Vim 與你所習(xí)慣的傳統(tǒng)文本編輯器不同。
這是真的,這就是為什么 Vim 在學(xué)習(xí)的初始階段會(huì)顯得很艱難。
然而,對(duì)于高級(jí)用戶(hù)來(lái)說(shuō),使用宏、自動(dòng)補(bǔ)完等高級(jí)能力很重要,可以節(jié)省時(shí)間。
因此,如果你是一個(gè)程序員,或者碰巧經(jīng)常編輯許多文件,Vim 的學(xué)習(xí)曲線可能是富有成效的。
另一方面,nano 提供了極小的學(xué)習(xí)曲線,而且感覺(jué)比基于圖形用戶(hù)界面的文本編輯器如 Gedit 或 Notepad 更讓你熟悉。

哪個(gè)是最適合你的?
Vim 和 nano 都是合格的基于終端的文本編輯器。但是,當(dāng)涉及到你如何與上述編輯器互動(dòng)和使用時(shí),它們有很大的不同。
Vim 很靈活,可以適應(yīng)各種工作流程,前提是你已經(jīng)習(xí)慣了它的工作方式。
相比之下,nano 工作起來(lái)很簡(jiǎn)單,可以幫助你編輯任何你想要的東西。
如果你還不確定,我建議先開(kāi)始使用 nano。而且,如果你認(rèn)為你需要更快地完成工作,并且想要更多的功能,那么就換成 Vim。

常見(jiàn)的問(wèn)題
繼續(xù),讓我來(lái)談?wù)剮讉€(gè)問(wèn)題,這將有助于你獲得一個(gè)良好的開(kāi)端。
Vim 比 nano 好嗎?
從技術(shù)上講,是的。但是,如果你不需要它提供的所有功能,使用起來(lái)可能會(huì)感到力不從心。
程序員是否使用 Vim?
系統(tǒng)管理員和程序員喜歡 Vim 的高級(jí)功能。所以,是的,他們傾向于使用它。
nano 是否更受歡迎?
可以說(shuō)是的。nano 是一個(gè)基于終端的編輯器,被大多數(shù)用戶(hù)使用。此外,它還內(nèi)置在大多數(shù) Linux 發(fā)行版中。
因此,它在用戶(hù)中普遍受歡迎,而 Vim 仍然是一個(gè)為特定人群服務(wù)的編輯器。
推薦閱讀:
計(jì)算機(jī)網(wǎng)絡(luò)層次劃分及協(xié)議了解
5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹(shù)莓派,等等。在公眾號(hào)內(nèi)回復(fù)「1024」,即可免費(fèi)獲取!


