初識(shí) Vi 文本編輯器
Vi 是典型的 Unix 文本編輯器。來(lái)了解一下它或它的各種化身:Vim、Neovim、gVim、nvi 或 Elvis,它適用于 Linux、macOS、Windows 或 BSD。
不管你用的是 Vim、Neovim、gVim、nvi,甚至是 Elvis,其實(shí)都是這個(gè)典型的 Unix 編輯器 Vi。可能每一個(gè) Linux 和 BSD 發(fā)行版中都包含了 Vi,Vi 是一個(gè)輕量級(jí)的簡(jiǎn)約型文本編輯器,由于其簡(jiǎn)單簡(jiǎn)潔的鍵盤快捷鍵和雙模式設(shè)計(jì),很多用戶都喜歡它。
最初的 Vi 編輯器是由 C shell 的創(chuàng)建者 Bill Joy 編寫的應(yīng)用程序。現(xiàn)代 Vi 的化身已經(jīng)增加了許多功能,包括多級(jí)撤銷、插入模式下更好的導(dǎo)航、行折疊、語(yǔ)法高亮、插件支持等等。Vim 被認(rèn)為是它的最流行的現(xiàn)代實(shí)現(xiàn),大多數(shù)人在提到 Vi 時(shí)實(shí)際上是指 Vim。
所有這些化身都是為了同一個(gè)目標(biāo),所以本文將從通用的場(chǎng)景來(lái)探討 Vi。你的計(jì)算機(jī)上的版本可能略有不同,但你仍然可以從 Vi 編輯文本的方式中獲益。
安裝 Vi
如果你運(yùn)行的是 Linux、macOS 或 BSD,那么你已經(jīng)安裝了 vi
命令。如果你在 Windows 上,你可以下載 Vim 和 gVim。
gVim
在 NetBSD上,nvi 是 Vi 的常見替代品,而 Slackware 則提供了 Elvis(和 Vim),流行的 Neovim 復(fù)刻旨在幫助用戶用 Lua 擴(kuò)展 Vim。
啟動(dòng) Vi
在終端中用 vi
命令啟動(dòng) Vi 或 Vim。如果在你的系統(tǒng)中沒有找到 .vimrc
文件,那么 Vim 就會(huì)以 Vi 兼容模式啟動(dòng)(也可以用 -C
選項(xiàng)強(qiáng)制啟動(dòng)該模式)。如果你想使用 gVim 以擁有一個(gè)圖形用戶界面(GUI),你可以從桌面的應(yīng)用程序菜單中啟動(dòng)它。
如果你是一個(gè)剛剛學(xué)習(xí) Vi 的新用戶,使用圖形用戶界面是一個(gè)很好的方法,可以在你可能期望的文本編輯器的行為和 Vi 的設(shè)計(jì)行為之間提供一個(gè)緩沖帶。圖形用戶界面版本有一個(gè)菜單欄,一些鼠標(biāo)集成,一個(gè)工具欄和其他功能,這可以幫助你找到你可能認(rèn)為在典型的文本編輯器中理所當(dāng)然的基本功能,但還不知道如何在 Vi 中做。
如何使用 Vi
學(xué)習(xí) Vi 最簡(jiǎn)單的方法可能是使用 vimtutor
,這是一個(gè)與 Vim 打包在一起的交互式教程。要開始學(xué)習(xí)該教程,啟動(dòng) vimtutor
并閱讀說(shuō)明,嘗試每個(gè)練習(xí)。正如教程中所說(shuō),學(xué)好 Vi 不是記住什么鍵做什么,而是建立肌肉記憶,以在輸入時(shí)調(diào)用常用的動(dòng)作。
Esc 鍵
學(xué)習(xí) Vi 的第一件重要的事就是掌握 Esc
鍵。Esc
是激活命令模式的工具,很快你就會(huì)明白,在 Vi 中,只要你不確定,就按 Esc
。在命令模式下,你按下的任何鍵都不會(huì)被輸入到你正在處理的文本文檔中,而是被 Vi 解釋為一條命令。例如,要將光標(biāo)向左移動(dòng),你可以按鍵盤上的 H
鍵。如果你處于插入模式,那么按 H
鍵就會(huì)輸入字母 H,就像你期望的那樣。但在命令模式下,按 H
向左移動(dòng),L
向右移動(dòng),J
向下移動(dòng),K
向上移動(dòng)。
命令模式和插入模式的分離與其他文本編輯器的工作方式形成了鮮明的對(duì)比,由于這種設(shè)計(jì),這可能是 Vi 最顯著的差異化。不過有趣的是,理論上來(lái)說(shuō),它與你可能已有的工作方式并沒有太大的區(qū)別。畢竟,當(dāng)你把手從鍵盤上拿開,用鼠標(biāo)選擇文本時(shí),你基本上是將自己置于一種命令模式中。在 Vi 中,你不需要把手從鍵盤上移開來(lái)移動(dòng)鼠標(biāo),也不需要按功能鍵或 Ctrl
鍵,而是將編輯器放入一種特殊的操作模式中,使你的按鍵重新分配到命令上,而不是文字輸入。
擴(kuò)展 Vi
在 Vim 8.0 版本之前,Vi 在很大程度上“只是”一個(gè)文本編輯器。它有插件,但安裝插件是一個(gè)手動(dòng)的過程,很多用戶從未想過要這么做。幸運(yùn)的是,Vim 8 及以上版本提供了對(duì)插件管理的支持,使得安裝和加載插件變得輕而易舉。
安裝 Vim 的插件可以通過 vim-plug
功能來(lái)完成。例如,要安裝 Vi 文件瀏覽器 NERDTree:
:PlugInstall NERDTree
你也可以更新插件:
:PlugUpdate NERDTree
關(guān)于使用 vim-plug
和手動(dòng)安裝插件和主題的更多信息,請(qǐng)閱讀我的文章《如何安裝 Vim 插件》。
默認(rèn) Vi
Vi 不僅僅流行,它還是一個(gè) POSIX 標(biāo)準(zhǔn)。它是每個(gè)系統(tǒng)管理員都應(yīng)該知道如何使用的應(yīng)用程序,即使他們不打算每天使用它。它也是一個(gè)快速而簡(jiǎn)單的編輯器,所以一旦你熟練掌握了它,它可能就是你一直在尋找的編輯器。