我們需要利用文本編輯器來做筆記、寫程序,或者編輯系統(tǒng)配置文件來完成一些事情。
不管你用來做什么,你的 Linux 發(fā)行版已經(jīng)預(yù)裝了文本編輯器。
你很可能會注意到一些 最好的現(xiàn)代文本編輯器,如 Gedit、Geany、Kate 等,它們已經(jīng)預(yù)裝在你的 Linux 發(fā)行版中。然而,這些都是基于 GUI 的程序。
如果你想通過終端訪問文本編輯器怎么辦?你應(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)置的,但你必須手動安裝 Vim。
為了比較這兩者,讓我給你簡單介紹一下這兩者。
Vim
Vim 是 “Vi” 文本編輯器的改進(jìn)版,開發(fā)于 1991 年。Vim 是 “Vi 改進(jìn)版Vi IMproved” 的意思。
Vi 是一個(gè)基于終端的文本編輯器,最初于 1976 年為 Unix 操作系統(tǒng)而開發(fā)。Vim 是它的一個(gè)具有現(xiàn)代功能的增強(qiáng)版。
考慮到它的各種功能可以幫助編輯程序文件,它也被稱為“程序員的文本編輯器”。雖然它提供了一些高級功能,但你也可以用來編輯純文本文件。
GNU nano
GNU nano(我們在文章中稱它為 “nano”)是一個(gè)簡單的基于終端的文本編輯器,其靈感來自于 Pico —— 這個(gè)基于 Unix 的文本編輯器是華盛頓大學(xué) 1989 年開發(fā)的 Pine 電子郵件套件的一部分。
Pico 文本編輯器沒有 GPL(許可證),這使得它很難被納入 Linux 發(fā)行版。
因此,nano 被開發(fā)出來作為它的自由軟件替代品。nano 編輯器最初被稱為 “tip”,然后在 Richard Stallman 宣布它成為正式的 GNU 程序之前重新命名為 nano。
這個(gè)編輯器的亮點(diǎn)是它的易用性和極小的學(xué)習(xí)曲線。你不一定需要成為程序員才能使用 nano。
2、功能差異
下面是 Vim 和 nano 的主要功能差異:
Vim 的主要特點(diǎn)
多級撤銷
語法高亮
命令行編輯
文件名補(bǔ)完
多窗口和緩沖區(qū)
折疊
會話
支持宏
nano 的主要特點(diǎn)
打開多個(gè)文件
逐行滾動
撤銷/重做
語法著色
行號
請注意,一般來說,Vim 提供了更高級的功能。然而,它們都提供了編輯系統(tǒng)配置文件、編程和文本編輯等基本功能。
3、用作文本編輯器
在 Vim 或 nano 中打開一個(gè)文件很簡單,只要輸入你想使用的編輯器的名字,然后再輸入文件的路徑。路徑可以是文件的絕對路徑,也可以是文件的相對路徑。
vimDocuments/text.txt nanoDocuments/text.txt
但是,除了用作文本編輯器訪問或打開一個(gè)文件之外,還有很多功能,對嗎?
如果你想快速比較一下,這里有一些基于我的使用情況的比較點(diǎn):
Vim:
模式驅(qū)動的編輯器
在開始時(shí)有巨大的學(xué)習(xí)曲線
會話恢復(fù)
語法高亮/著色
提供高級功能
nano:
易于使用(經(jīng)常使用的功能及其組合鍵列在底部)
不存在學(xué)習(xí)曲線
旨在進(jìn)行快速編輯
nano 和 Vim 的主要區(qū)別在于,它們的目標(biāo)受眾非常不同。
Vim
Vim 是一個(gè)模式驅(qū)動的編輯器。這意味著字母、數(shù)字和標(biāo)點(diǎn)符號鍵在按下時(shí)都要做一件獨(dú)特的事情,而不是在屏幕上打出一個(gè)字符。
這些模式包括:
正常模式
視覺模式
插入模式
命令行命令
命令行編輯
默認(rèn)情況下,當(dāng)你啟動 Vim 時(shí),它以 正常 模式打開。每個(gè)鍵都有其獨(dú)特的功能,不會立即開始輸入所按下的字符。
不管什么模式,如果你愿意,你也可以把 Vim 配置成一個(gè)寫作工具。
當(dāng)你啟動 Vim(無參數(shù))時(shí)的終端屏幕
在正常模式下,按特定的鍵會移動你的光標(biāo)。
例如,如果你按下 l(小寫字母 L),它將把光標(biāo)向右移動一個(gè)字符,按 h 鍵將把光標(biāo)向左移動一個(gè)字符。
如果你想把光標(biāo)向下移動一行,你就按 j 鍵,如果要把光標(biāo)向上移動一行,你應(yīng)該按 k 鍵。
在正常模式下 l、k、j、h 是導(dǎo)航鍵。雖然你可以用方向鍵來移動,但這樣做更有效率。
這些是 Vim 中的基本導(dǎo)航鍵。
接下來最常用的鍵是 w、b、e:
按 w 鍵可將光標(biāo)移到下一個(gè)詞。如果它已經(jīng)在一個(gè)詞的開頭,它就會移動到下一個(gè)詞的開頭。
按 b 鍵,光標(biāo)會移到左邊的詞的開頭。
而 e 鍵,則將光標(biāo)移到右邊的詞的末尾。
你甚至可以用這些鍵混合數(shù)字(作為前綴)。例如,按 6w 可以將光標(biāo)向前(向右)移動六個(gè)詞。
如果你想進(jìn)入一個(gè)模式,你必須按類似的組合鍵:
i 為插入模式
CTRL+C 回到正常模式
:wq 寫入文件并關(guān)閉窗口。
最后,我們已經(jīng) 列出了退出 Vim 的多種方法[1],如果你想了解一下的話。
這只是冰山一角。要學(xué)習(xí)更多關(guān)于 Vim 的知識,你可以使用vimtutor 命令,它可以給你提供大多數(shù)基本命令的信息,如刪除、編輯、保存文件等。
GNU nano
nano 有一個(gè)基本的交互界面,在窗口的底部給你提供關(guān)鍵信息。
![Terminal screen when you launch nano without argumentswithoutarguments] 13
你不需要參考手冊頁或任何文檔來執(zhí)行基本操作。這就是為什么與 Vim 相比,nano 被認(rèn)為是用戶友好的。
盡管如此,nano 中使用的一些術(shù)語仍然是“舊術(shù)語”,一個(gè)例子是 “寫出Write Out”、“在哪里Where Is”短語,而不是分別用“保存Save”和“查找Find”。
但是,這并不是什么大問題。
雖然很容易習(xí)慣,但它與使用記事本或 Gedit(GUI 程序)并不完全相同。
例如,在大多數(shù)現(xiàn)代編輯器中,執(zhí)行剪切操作的組合鍵通常是 Ctrl + X,但在 nano 中,它是 Ctrl + K。
符號 ^ 是用來表示將 Ctrl 鍵作為修飾鍵使用,并與旁邊的鍵組合使用。
你還可以找到像 Ctrl + F(將光標(biāo)向前移動)、Ctrl + B(將光標(biāo)向后移動)這樣的組合鍵。一些快捷鍵包括:
Ctrl + X 退出
Ctrl + O 寫入(或保存為)
Alt + U 撤銷上一個(gè)動作
Ctrl + ← 向后退一個(gè)字
Ctrl + → 向前進(jìn)一個(gè)字
你可以看看 GNU nano 的官方速查表[2] 來學(xué)習(xí)更多的快捷鍵。
總的來說,nano 是一個(gè)更適合初學(xué)者的編輯器,當(dāng)你只想偶爾編輯一個(gè)文件時(shí),它可以簡單地讓你完成。
4、學(xué)習(xí)曲線
考慮到上面的所有信息,你一定已經(jīng)意識到 Vim 與你所習(xí)慣的傳統(tǒng)文本編輯器不同。
這是真的,這就是為什么 Vim 在學(xué)習(xí)的初始階段會顯得很艱難。
然而,對于高級用戶來說,使用宏、自動補(bǔ)完等高級能力很重要,可以節(jié)省時(shí)間。
因此,如果你是一個(gè)程序員,或者碰巧經(jīng)常編輯許多文件,Vim 的學(xué)習(xí)曲線可能是富有成效的。
另一方面,nano 提供了極小的學(xué)習(xí)曲線,而且感覺比基于圖形用戶界面的文本編輯器如 Gedit 或 Notepad 更讓你熟悉。
哪個(gè)是最適合你的?
Vim 和 nano 都是合格的基于終端的文本編輯器。但是,當(dāng)涉及到你如何與上述編輯器互動和使用時(shí),它們有很大的不同。
Vim 很靈活,可以適應(yīng)各種工作流程,前提是你已經(jīng)習(xí)慣了它的工作方式。
相比之下,nano 工作起來很簡單,可以幫助你編輯任何你想要的東西。
如果你還不確定,我建議先開始使用 nano。而且,如果你認(rèn)為你需要更快地完成工作,并且想要更多的功能,那么就換成 Vim。
常見的問題
繼續(xù),讓我來談?wù)剮讉€(gè)問題,這將有助于你獲得一個(gè)良好的開端。
Vim 比 nano 好嗎?
從技術(shù)上講,是的。但是,如果你不需要它提供的所有功能,使用起來可能會感到力不從心。
程序員是否使用 Vim?
系統(tǒng)管理員和程序員喜歡 Vim 的高級功能。所以,是的,他們傾向于使用它。
nano 是否更受歡迎?
可以說是的。nano 是一個(gè)基于終端的編輯器,被大多數(shù)用戶使用。此外,它還內(nèi)置在大多數(shù) Linux 發(fā)行版中。
因此,它在用戶中普遍受歡迎,而 Vim 仍然是一個(gè)為特定人群服務(wù)的編輯器。
原文標(biāo)題:Vim 與 nano:你應(yīng)該選擇哪個(gè)?
文章出處:【微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209475 -
程序員
+關(guān)注
關(guān)注
4文章
952瀏覽量
29804 -
編輯器
+關(guān)注
關(guān)注
1文章
806瀏覽量
31171
原文標(biāo)題:Vim 與 nano:你應(yīng)該選擇哪個(gè)?
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論