我們需要利用文本編輯器來(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 IMproved” 的意思。
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)
多級(jí)撤銷(xiāo)
語(yǔ)法高亮
命令行編輯
文件名補(bǔ)完
多窗口和緩沖區(qū)
折疊
會(huì)話
支持宏
nano 的主要特點(diǎn)
打開(kāi)多個(gè)文件
逐行滾動(dòng)
撤銷(xiāo)/重做
語(yǔ)法著色
行號(hào)
請(qǐng)注意,一般來(lái)說(shuō),Vim 提供了更高級(jí)的功能。然而,它們都提供了編輯系統(tǒng)配置文件、編程和文本編輯等基本功能。
3、用作文本編輯器
在 Vim 或 nano 中打開(kāi)一個(gè)文件很簡(jiǎn)單,只要輸入你想使用的編輯器的名字,然后再輸入文件的路徑。路徑可以是文件的絕對(duì)路徑,也可以是文件的相對(duì)路徑。
vimDocuments/text.txt nanoDocuments/text.txt
但是,除了用作文本編輯器訪問(wèn)或打開(kāi)一個(gè)文件之外,還有很多功能,對(duì)嗎?
如果你想快速比較一下,這里有一些基于我的使用情況的比較點(diǎn):
Vim:
模式驅(qū)動(dòng)的編輯器
在開(kāi)始時(shí)有巨大的學(xué)習(xí)曲線
會(huì)話恢復(fù)
語(yǔ)法高亮/著色
提供高級(jí)功能
nano:
易于使用(經(jīng)常使用的功能及其組合鍵列在底部)
不存在學(xué)習(xí)曲線
旨在進(jìn)行快速編輯
nano 和 Vim 的主要區(qū)別在于,它們的目標(biāo)受眾非常不同。
Vim
Vim 是一個(gè)模式驅(qū)動(dòng)的編輯器。這意味著字母、數(shù)字和標(biāo)點(diǎn)符號(hào)鍵在按下時(shí)都要做一件獨(dú)特的事情,而不是在屏幕上打出一個(gè)字符。
這些模式包括:
正常模式
視覺(jué)模式
插入模式
命令行命令
命令行編輯
默認(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 的多種方法[1],如果你想了解一下的話。
這只是冰山一角。要學(xué)習(xí)更多關(guān)于 Vim 的知識(shí),你可以使用vimtutor 命令,它可以給你提供大多數(shù)基本命令的信息,如刪除、編輯、保存文件等。
GNU nano
nano 有一個(gè)基本的交互界面,在窗口的底部給你提供關(guān)鍵信息。
![Terminal screen when you launch nano without argumentswithoutarguments] 13
你不需要參考手冊(cè)頁(yè)或任何文檔來(lái)執(zhí)行基本操作。這就是為什么與 Vim 相比,nano 被認(rèn)為是用戶友好的。
盡管如此,nano 中使用的一些術(shù)語(yǔ)仍然是“舊術(shù)語(yǔ)”,一個(gè)例子是 “寫(xiě)出Write Out”、“在哪里Where Is”短語(yǔ),而不是分別用“保存Save”和“查找Find”。
但是,這并不是什么大問(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 的官方速查表[2] 來(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í)用戶來(lái)說(shuō),使用宏、自動(dòng)補(bǔ)完等高級(jí)能力很重要,可以節(jié)省時(shí)間。
因此,如果你是一個(gè)程序員,或者碰巧經(jīng)常編輯許多文件,Vim 的學(xué)習(xí)曲線可能是富有成效的。
另一方面,nano 提供了極小的學(xué)習(xí)曲線,而且感覺(jué)比基于圖形用戶界面的文本編輯器如 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ù)用戶使用。此外,它還內(nèi)置在大多數(shù) Linux 發(fā)行版中。
因此,它在用戶中普遍受歡迎,而 Vim 仍然是一個(gè)為特定人群服務(wù)的編輯器。
原文標(biāo)題:Vim 與 nano:你應(yīng)該選擇哪個(gè)?
文章出處:【微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209323 -
程序員
+關(guān)注
關(guān)注
4文章
951瀏覽量
29798 -
編輯器
+關(guān)注
關(guān)注
1文章
805瀏覽量
31163
原文標(biāo)題:Vim 與 nano:你應(yīng)該選擇哪個(gè)?
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論