作者:Sanchit Gera盼产,原文鏈接:How I learned to love vim
以下是譯文:
我與 Vim 之間既苦澀又甜蜜的關(guān)系維持了相當(dāng)長(zhǎng)的一段時(shí)間。
在過(guò)去的幾年間勺馆,我數(shù)次嘗試著去學(xué)習(xí) Vim戏售,但每一次到最后還是放棄了。我更愿意去使用我的“初級(jí)”文本編輯器(通常是 Atom)草穆。
但在幾周以后灌灾,我發(fā)現(xiàn)自己無(wú)法使用 Atom 了,因?yàn)槠渲幸粋€(gè)模糊的連通性問(wèn)題悲柱,這個(gè)問(wèn)題使得我建立在遠(yuǎn)程連接的設(shè)置完全失效了锋喜。
在經(jīng)歷過(guò)五個(gè)令人悲傷的階段后(譯者注:哦,天知道發(fā)生了什么),我決定咬緊牙關(guān)(再一次)試著去學(xué)習(xí) Vim嘿般。這一次我強(qiáng)迫自己去使用 Vim段标,并且是只使用 Vim。
我知道——我可以很輕松的轉(zhuǎn)向另一種更簡(jiǎn)單易用的編輯器比如說(shuō) Sublime炉奴”婆樱或者甚至可以使用非常成熟的 IDE 比如 IntelliJ。
但是盆佣,我還是決定闖一闖所謂的“地獄”往堡。下面是我學(xué)習(xí)到的一些東西:
作者:Sanchit Gera,原文鏈接:How I learned to love vim
以下是譯文:
我與 Vim 之間既苦澀又甜蜜的關(guān)系維持了相當(dāng)長(zhǎng)的一段時(shí)間共耍。
在過(guò)去的幾年間,我數(shù)次嘗試著去學(xué)習(xí) Vim吨瞎,但每一次到最后還是放棄了痹兜。我更愿意去使用我的“初級(jí)”文本編輯器(通常是 Atom)。
但在幾周以后颤诀,我發(fā)現(xiàn)自己無(wú)法使用 Atom 了字旭,因?yàn)槠渲幸粋€(gè)模糊的連通性問(wèn)題,這個(gè)問(wèn)題使得我建立在遠(yuǎn)程連接的設(shè)置完全失效了崖叫。
在經(jīng)歷過(guò)五個(gè)令人悲傷的階段后(譯者注:哦遗淳,天知道發(fā)生了什么),我決定咬緊牙關(guān)(再一次)試著去學(xué)習(xí) Vim心傀。這一次我強(qiáng)迫自己去使用 Vim屈暗,并且是只使用 Vim。
我知道——我可以很輕松的轉(zhuǎn)向另一種更簡(jiǎn)單易用的編輯器比如說(shuō) Sublime脂男⊙眩或者甚至可以使用非常成熟的 IDE 比如 IntelliJ。
但是宰翅,我還是決定闖一闖所謂的“地獄”弃甥。下面是我學(xué)習(xí)到的一些東西:
學(xué)習(xí)基礎(chǔ)
如果你沒(méi)怎么用過(guò),Vim 可能看起來(lái)像是一個(gè)非常古老的文本編輯器汁讼。說(shuō)起它的來(lái)源淆攻,需要追溯到一款在七十年代出現(xiàn)的叫做 Vi 的程序。
由于 Vim 的設(shè)計(jì)初衷就是完全依賴(lài)鍵盤(pán)就能工作的編輯器嘿架,所以這也成了它既吸引人又讓人討厭的地方瓶珊。畢竟當(dāng) Vi 被構(gòu)思出來(lái)時(shí),只需要鼠標(biāo)點(diǎn)點(diǎn)的那些 GUI 可視化界面還并不是怎么實(shí)用的東西呢眶明。
Vim 使用模式(mode)的方式來(lái)操作艰毒,有兩種主要的模式最常被使用到:
- 正常模式(Normal mode):這種模式是在你瀏覽、編輯或者操作文件的時(shí)候使用搜囱。如果你不涉及輸入新的內(nèi)容到文件中丑瞧,該模式下你可以做任何其他事柑土。大多數(shù)的 Vim 命令都是在這個(gè)模式下完成。
- 插入模式(Insert mode):這種模式允許你輸入新文本到文件中去绊汹,這時(shí)候 Vim 表現(xiàn)得更像是一個(gè)“正經(jīng)”的文本編輯器稽屏,比如 Atom 或者 Sublime。當(dāng)然了西乖,還是不需要使用鼠標(biāo)的狐榔,即使你想用也用不了 :)
Vim 也還有其他模式,其中一個(gè)是 虛擬模式(Visual mode)获雕,在選擇大段文本的時(shí)候使用薄腻。一般來(lái)說(shuō),這些模式在平時(shí)使用的頻率不高届案。
Vim 一般是在終端模擬器中使用的庵楷,但單獨(dú)的發(fā)行版也是有的。Vim 可以被使用在任何 Unix 和 Linux 操作系統(tǒng)上楣颠。Vim 的爺爺——Vi尽纽,作為 UNIX 規(guī)范的一部分,很自然的童漩,它被預(yù)裝在任何基于 UNIX 的合格操作系統(tǒng)上弄贿。
可組合性
“可組合性”使得 Vim 在很大程度上區(qū)別于其他編輯器。它賦予了 Vim 獨(dú)有的語(yǔ)言矫膨。
它在文本編輯和操作的語(yǔ)境中差凹,引入了名詞和動(dòng)詞的概念。
動(dòng)詞描述的是你能做什么(比如刪除豆拨、改變直奋、移動(dòng)等)。
名詞描述的是正在發(fā)生的事情(通常是單詞施禾、行或者文本中的某些地方)脚线。
其中一些常見(jiàn)的動(dòng)名詞包括:
動(dòng)詞
d:刪除
c:改變(覆蓋)
y:復(fù)制
>:縮進(jìn)
<:取消縮進(jìn)
操作
h,j,k,l:向左,向下弥搞,向上邮绿,向右
w:下一個(gè)單詞
b:上一個(gè)單詞
0:行首
$:行末
i:?jiǎn)卧~內(nèi)(不含下一個(gè)字符)
a:?jiǎn)卧~周?chē)?
這份列表并不詳盡,其實(shí)有非常多可使用的快捷鍵攀例。但是你僅僅使用其中非炒基礎(chǔ)的幾個(gè)快捷鍵就能夠?qū)崿F(xiàn)大部分操作。方法就是將動(dòng)名詞和偶爾出現(xiàn)的數(shù)字組合在一起粤铭,你就能創(chuàng)建出不同的 行為 去操作需要的文本挖胃。
舉個(gè)例子,為了刪除一個(gè)單詞(delete a word),你可以鍵入組合鍵 dw
酱鸭。
從當(dāng)前位置刪除兩個(gè)單詞(delect 2 word)吗垮,你可以輸入 d2w
。
從當(dāng)前位置一路刪除至行末凹髓,你可以輸入 d$
烁登。
(譯者注:我其實(shí)也是一個(gè) newbie,看到這幾個(gè)例子立馬去試了一下蔚舀,發(fā)現(xiàn)真好用饵沧,試著鍵入 d0
,哈哈赌躺,果然將當(dāng)前位置至行首的內(nèi)容都刪除了~)
刪除當(dāng)前括號(hào)內(nèi)的所有內(nèi)容狼牺,你可能會(huì)鍵入 di(
,是的寿谴,就是這樣 :)
這種工作方式似乎沒(méi)有什么好爭(zhēng)論的锁右,它們是那么高效優(yōu)雅。如果你強(qiáng)迫自己每天去使用這些組合讶泰,它們會(huì)成為你的第二天性。在一段時(shí)間后拂到,你會(huì)發(fā)現(xiàn)通過(guò)減少按鍵次數(shù)而獲得的編輯速度是令人驚訝的痪署。
Vim 讓人上癮
是的,我知道這個(gè)已經(jīng)被用的不能再多了兄旬,但請(qǐng)?jiān)试S我再用一次 :)
Vim 有著臭名昭著的學(xué)習(xí)曲線狼犯。而一旦你度過(guò)了那段艱難時(shí)期——經(jīng)常對(duì)著電腦屏幕發(fā)詛咒(譯者注:當(dāng)你用不了鼠標(biāo),想要跳到某個(gè)字符卻不知道怎么能快一點(diǎn)领铐,傻傻的移動(dòng)方向鍵悯森,內(nèi)心是多么的崩潰。绪撵。瓢姻。),Vim 用起來(lái)其實(shí)挺好玩的音诈。
學(xué)習(xí)使用 Vim 的那些神秘命令幻碱,讓你能夠在操作文件上飛起來(lái)~一段時(shí)間過(guò)后,當(dāng)你的手指離開(kāi)了鍵盤(pán)或者不自覺(jué)的去使用鼠標(biāo)的時(shí)候细溅,你會(huì)覺(jué)得哪些地方不對(duì)勁(譯者注:Vim 讓你的手指完全不需要離開(kāi)鍵盤(pán)就能飛一般的工作褥傍,用慣了 GUI 的我在以前想都不敢想。喇聊。恍风。怎么可能嘛,是的,Vim 做到了E蟊帷)
僅僅在一個(gè)月之后凯楔,我發(fā)現(xiàn)自己在使用電腦的時(shí)候總是會(huì)不自覺(jué)的去用那些快捷鍵,盡管那些軟件并沒(méi)有這些快捷鍵兄世。
事實(shí)上啼辣,我也曾經(jīng)考慮過(guò)在瀏覽網(wǎng)頁(yè)的時(shí)候嘗試使用這個(gè) 擴(kuò)展 來(lái)啟用 Vim 快捷鍵。
幸運(yùn)的是御滩,編程社區(qū)都承認(rèn) Vim 的地位鸥拧。大多數(shù)主流的文本編輯器都總是有那么一些方法能夠啟用 Vim 的快捷鍵。這也使得 “Vimmers” 能夠脫離在世界上最好的兩種事物上要做出選擇的苦海削解。
給 Vim 一次戰(zhàn)斗的機(jī)會(huì)
要想提高在 Vim 上的造詣富弦,沒(méi)有任何其他什么武功秘籍,唯有日夜苦練基本功氛驮。行之有效的方式就是強(qiáng)迫自己用 Vim腕柜。
舉個(gè)例子,當(dāng)你使用 Vim 編輯文件的時(shí)候矫废,盡量不要使用你之前的舊習(xí)慣盏缤。大多數(shù)人在剛開(kāi)始的時(shí)候應(yīng)該盡量遠(yuǎn)離 ‘正常模式’。
相反蓖扑,他們?cè)噲D花盡可能多的時(shí)間在‘插入模式’上唉铜。在這個(gè)模式上,很容易讓人產(chǎn)生舒適感律杠。這也容易讓人在編輯文件的時(shí)候?qū)W不到任何其他新的東西潭流。很明顯這是一個(gè)錯(cuò)誤。
如果你確實(shí)有興趣學(xué)習(xí)如何讓 Vim 為你工作柜去,那么你必須付出一些努力灰嫉,花些時(shí)間去找出做事情的正確方式。
如果你發(fā)現(xiàn)自己為了完成任務(wù)嗓奢,不停地重復(fù)按那些鍵讼撒,請(qǐng)先停下來(lái)。因?yàn)楹芸赡苣阏谧龅氖虑橛懈玫姆绞饺ネ瓿伞?/strong>
Google 一下蔓罚,記住它椿肩,加入你的知識(shí)庫(kù)中。相比于去閱讀整個(gè)命令清單并試圖希望自己會(huì)在將來(lái)會(huì)需要用到其中一個(gè)命令豺谈,用這種方式非常容易能學(xué)到新的命令郑象。
在一段時(shí)間后,當(dāng)你在無(wú)腦敲鍵盤(pán)的時(shí)候茬末,你就可能會(huì)產(chǎn)生一種直覺(jué)(譯者注:這種直覺(jué)類(lèi)似于意識(shí)到自己目前在解決這件事的方式上可能會(huì)有更好的處理辦法)厂榛。那么請(qǐng)聽(tīng)從你的直覺(jué)盖矫。
感謝(?)現(xiàn)代編輯器
許多人回避 Vim 的另一個(gè)重要原因就是 Vim 看起來(lái)光禿禿的只有編輯這一個(gè)最最基本的功能。
確實(shí)击奶,默認(rèn)情況下辈双,Vim 本身并沒(méi)有自帶什么插件或者好用的功能的。并且柜砾,Vim 認(rèn)為好用的功能可能與程序員使用的現(xiàn)代 IDE 認(rèn)為的好用的功能有著比較大的差別湃望。
Vim 其實(shí)是有語(yǔ)法高亮功能的(但默認(rèn)情況下是被禁用的)。Vim 也沒(méi)有行號(hào)顯示(也需要你去將其開(kāi)啟)痰驱。
不用驚訝了证芭,下面這些東西也是默認(rèn)沒(méi)有的:
- 默認(rèn)的 Git 集成
- 代碼提示
- 自動(dòng)標(biāo)點(diǎn)配對(duì)
- 代碼片段
- 自定義的顏色試圖
這些都是不預(yù)裝在 Vim 中的。
譯者注:其實(shí)寫(xiě)到這里担映,我覺(jué)得已經(jīng)有很多人萌生了退卻之意废士,確實(shí)要想玩好 Vim,需要花不少時(shí)間蝇完,免不了諸多的折騰官硝。愛(ài)折騰的人自然是興奮不已,比如譯者自己短蜕。但不愛(ài)折騰的氢架,譯者還是鼓勵(lì)去試著玩玩看,雖然現(xiàn)代 IDE 自帶了相當(dāng)多的功能朋魔,但是很多功能你也是需要去折騰才能熟練的使用达箍。
這似乎是一個(gè)巨大的轉(zhuǎn)折點(diǎn)——尤其是對(duì)于那些使用強(qiáng)大的 IDE 的開(kāi)發(fā)者們。大量的插件和擴(kuò)展被預(yù)裝在上面铺厨,為了能夠使工作更有效率。
從這個(gè)角度上來(lái)看硬纤,Vim 卻有其局限性解滓。
然而,在另一個(gè)方面筝家,即便你欣賞現(xiàn)代 IDE 提供的東西洼裤,以及通過(guò)它們構(gòu)建出的東西——你也會(huì)意識(shí)到,大多數(shù)的 IDE (甚至是一些普通的編輯器溪王,如 Atom)都帶來(lái)了大量的膨脹腮鞍。
高級(jí)的 IDE 充斥著許許多多普通用戶幾乎很少使用的特性。
學(xué)習(xí)有效地使用 Vim 在某種程度上其實(shí)是一種鍛煉莹菱,你可以慢慢發(fā)現(xiàn)哪些插件對(duì)你來(lái)說(shuō)是至關(guān)重要的移国。重點(diǎn)是打造出一款適合你的需求和工作流的獨(dú)一無(wú)二的編輯器。(譯者注:這一點(diǎn)太能打動(dòng)我了 TAT)
多數(shù)情況下道伟,使用 IDE 這些完全成熟體無(wú)可厚非迹缀。這些高級(jí)功能給你帶來(lái)的好處確實(shí)可能遠(yuǎn)超使用 Vim 帶來(lái)的使碾。
但是!Vim 能夠讓你搞清楚自己祝懂,因?yàn)樗侵泵婺愕膬?nèi)心的 :P
盡管 Vim 看起來(lái)光禿禿的票摇,但是它其實(shí)是擁有一個(gè)非常完備、蓬勃發(fā)展的插件生態(tài)系統(tǒng)砚蓬。
Vim 擁有幾乎所有你能在其他編輯器中用到的插件矢门。你只需要找到那些你需要 的就好了。
讓我驚訝的是灰蛙,在只有少量插件的情況下我能走得有多遠(yuǎn)祟剔。目前我的 Vim 大概只有 5 到 6 個(gè)“基本”插件組成,但我真不覺(jué)得我錯(cuò)過(guò)了什么缕允。
Vim 并不是完美的峡扩,而且也絕對(duì)不是適合所有人的。
但是至少障本,學(xué)好 Vim 有一個(gè)好處教届,萬(wàn)一你哪一天突然不小心打開(kāi)了 Vim,然后找不到如何退出的方法驾霜。案训。。粪糙! ;)
[圖片上傳失敗...(image-e1fcdb-1511753861770)]
學(xué)習(xí)基礎(chǔ)
如果你沒(méi)怎么用過(guò)强霎,Vim 可能看起來(lái)像是一個(gè)非常古老的文本編輯器。說(shuō)起它的來(lái)源蓉冈,需要追溯到一款在七十年代出現(xiàn)的叫做 Vi 的程序城舞。
由于 Vim 的設(shè)計(jì)初衷就是完全依賴(lài)鍵盤(pán)就能工作的編輯器,所以這也成了它既吸引人又讓人討厭的地方寞酿。畢竟當(dāng) Vi 被構(gòu)思出來(lái)時(shí)家夺,只需要鼠標(biāo)點(diǎn)點(diǎn)的那些 GUI 可視化界面還并不是怎么實(shí)用的東西呢。
Vim 使用模式(mode)的方式來(lái)操作伐弹,有兩種主要的模式最常被使用到:
- 正常模式(Normal mode):這種模式是在你瀏覽拉馋、編輯或者操作文件的時(shí)候使用。如果你不涉及輸入新的內(nèi)容到文件中惨好,該模式下你可以做任何其他事煌茴。大多數(shù)的 Vim 命令都是在這個(gè)模式下完成。
- 插入模式(Insert mode):這種模式允許你輸入新文本到文件中去日川,這時(shí)候 Vim 表現(xiàn)得更像是一個(gè)“正經(jīng)”的文本編輯器蔓腐,比如 Atom 或者 Sublime。當(dāng)然了逗鸣,還是不需要使用鼠標(biāo)的合住,即使你想用也用不了 :)
Vim 也還有其他模式绰精,其中一個(gè)是 虛擬模式(Visual mode),在選擇大段文本的時(shí)候使用透葛。一般來(lái)說(shuō)笨使,這些模式在平時(shí)使用的頻率不高。
Vim 一般是在終端模擬器中使用的僚害,但單獨(dú)的發(fā)行版也是有的硫椰。Vim 可以被使用在任何 Unix 和 Linux 操作系統(tǒng)上。Vim 的爺爺——Vi萨蚕,作為 UNIX 規(guī)范的一部分靶草,很自然的,它被預(yù)裝在任何基于 UNIX 的合格操作系統(tǒng)上岳遥。
可組合性
“可組合性”使得 Vim 在很大程度上區(qū)別于其他編輯器奕翔。它賦予了 Vim 獨(dú)有的語(yǔ)言。
它在文本編輯和操作的語(yǔ)境中浩蓉,引入了名詞和動(dòng)詞的概念派继。
動(dòng)詞描述的是你能做什么(比如刪除、改變捻艳、移動(dòng)等)驾窟。
名詞描述的是正在發(fā)生的事情(通常是單詞、行或者文本中的某些地方)认轨。
其中一些常見(jiàn)的動(dòng)名詞包括:
動(dòng)詞
d:刪除
c:改變(覆蓋)
y:復(fù)制
>:縮進(jìn)
<:取消縮進(jìn)
操作
h,j,k,l:向左绅络,向下,向上嘁字,向右
w:下一個(gè)單詞
b:上一個(gè)單詞
0:行首
$:行末
i:?jiǎn)卧~內(nèi)(不含下一個(gè)字符)
a:?jiǎn)卧~周?chē)?
這份列表并不詳盡恩急,其實(shí)有非常多可使用的快捷鍵。但是你僅僅使用其中非臣脱眩基礎(chǔ)的幾個(gè)快捷鍵就能夠?qū)崿F(xiàn)大部分操作假栓。方法就是將動(dòng)名詞和偶爾出現(xiàn)的數(shù)字組合在一起,你就能創(chuàng)建出不同的 行為 去操作需要的文本霍掺。
舉個(gè)例子,為了刪除一個(gè)單詞(delete a word)拌蜘,你可以鍵入組合鍵 dw
杆烁。
從當(dāng)前位置刪除兩個(gè)單詞(delect 2 word),你可以輸入 d2w
简卧。
從當(dāng)前位置一路刪除至行末兔魂,你可以輸入 d$
。
(譯者注:我其實(shí)也是一個(gè) newbie举娩,看到這幾個(gè)例子立馬去試了一下析校,發(fā)現(xiàn)真好用构罗,試著鍵入 d0
,哈哈智玻,果然將當(dāng)前位置至行首的內(nèi)容都刪除了~)
刪除當(dāng)前括號(hào)內(nèi)的所有內(nèi)容遂唧,你可能會(huì)鍵入 di(
,是的吊奢,就是這樣 :)
這種工作方式似乎沒(méi)有什么好爭(zhēng)論的盖彭,它們是那么高效優(yōu)雅。如果你強(qiáng)迫自己每天去使用這些組合页滚,它們會(huì)成為你的第二天性召边。在一段時(shí)間后,你會(huì)發(fā)現(xiàn)通過(guò)減少按鍵次數(shù)而獲得的編輯速度是令人驚訝的裹驰。
Vim 讓人上癮
是的隧熙,我知道這個(gè)已經(jīng)被用的不能再多了,但請(qǐng)?jiān)试S我再用一次 :)
[圖片上傳失敗...(image-5ef64b-1511753861770)]
Vim 有著臭名昭著的學(xué)習(xí)曲線幻林。而一旦你度過(guò)了那段艱難時(shí)期——經(jīng)常對(duì)著電腦屏幕發(fā)詛咒(譯者注:當(dāng)你用不了鼠標(biāo)贞盯,想要跳到某個(gè)字符卻不知道怎么能快一點(diǎn),傻傻的移動(dòng)方向鍵滋将,內(nèi)心是多么的崩潰邻悬。。随闽。)父丰,Vim 用起來(lái)其實(shí)挺好玩的。
學(xué)習(xí)使用 Vim 的那些神秘命令掘宪,讓你能夠在操作文件上飛起來(lái)~一段時(shí)間過(guò)后蛾扇,當(dāng)你的手指離開(kāi)了鍵盤(pán)或者不自覺(jué)的去使用鼠標(biāo)的時(shí)候,你會(huì)覺(jué)得哪些地方不對(duì)勁(譯者注:Vim 讓你的手指完全不需要離開(kāi)鍵盤(pán)就能飛一般的工作魏滚,用慣了 GUI 的我在以前想都不敢想镀首。。鼠次。怎么可能嘛更哄,是的,Vim 做到了P瓤堋)
僅僅在一個(gè)月之后成翩,我發(fā)現(xiàn)自己在使用電腦的時(shí)候總是會(huì)不自覺(jué)的去用那些快捷鍵,盡管那些軟件并沒(méi)有這些快捷鍵赦役。
事實(shí)上麻敌,我也曾經(jīng)考慮過(guò)在瀏覽網(wǎng)頁(yè)的時(shí)候嘗試使用這個(gè) 擴(kuò)展 來(lái)啟用 Vim 快捷鍵。
幸運(yùn)的是掂摔,編程社區(qū)都承認(rèn) Vim 的地位术羔。大多數(shù)主流的文本編輯器都總是有那么一些方法能夠啟用 Vim 的快捷鍵赢赊。這也使得 “Vimmers” 能夠脫離在世界上最好的兩種事物上要做出選擇的苦海。
給 Vim 一次戰(zhàn)斗的機(jī)會(huì)
要想提高在 Vim 上的造詣级历,沒(méi)有任何其他什么武功秘籍释移,唯有日夜苦練基本功。行之有效的方式就是強(qiáng)迫自己用 Vim鱼喉。
舉個(gè)例子秀鞭,當(dāng)你使用 Vim 編輯文件的時(shí)候,盡量不要使用你之前的舊習(xí)慣扛禽。大多數(shù)人在剛開(kāi)始的時(shí)候應(yīng)該盡量遠(yuǎn)離 ‘正常模式’锋边。
相反,他們?cè)噲D花盡可能多的時(shí)間在‘插入模式’上编曼。在這個(gè)模式上豆巨,很容易讓人產(chǎn)生舒適感。這也容易讓人在編輯文件的時(shí)候?qū)W不到任何其他新的東西掐场。很明顯這是一個(gè)錯(cuò)誤往扔。
如果你確實(shí)有興趣學(xué)習(xí)如何讓 Vim 為你工作,那么你必須付出一些努力熊户,花些時(shí)間去找出做事情的正確方式萍膛。
如果你發(fā)現(xiàn)自己為了完成任務(wù),不停地重復(fù)按那些鍵嚷堡,請(qǐng)先停下來(lái)蝗罗。因?yàn)楹芸赡苣阏谧龅氖虑橛懈玫姆绞饺ネ瓿伞?/strong>
Google 一下,記住它蝌戒,加入你的知識(shí)庫(kù)中串塑。相比于去閱讀整個(gè)命令清單并試圖希望自己會(huì)在將來(lái)會(huì)需要用到其中一個(gè)命令,用這種方式非常容易能學(xué)到新的命令北苟。
在一段時(shí)間后桩匪,當(dāng)你在無(wú)腦敲鍵盤(pán)的時(shí)候,你就可能會(huì)產(chǎn)生一種直覺(jué)(譯者注:這種直覺(jué)類(lèi)似于意識(shí)到自己目前在解決這件事的方式上可能會(huì)有更好的處理辦法)友鼻。那么請(qǐng)聽(tīng)從你的直覺(jué)傻昙。
感謝(?)現(xiàn)代編輯器
許多人回避 Vim 的另一個(gè)重要原因就是 Vim 看起來(lái)光禿禿的只有編輯這一個(gè)最最基本的功能。
確實(shí)彩扔,默認(rèn)情況下屋匕,Vim 本身并沒(méi)有自帶什么插件或者好用的功能的。并且借杰,Vim 認(rèn)為好用的功能可能與程序員使用的現(xiàn)代 IDE 認(rèn)為的好用的功能有著比較大的差別。
Vim 其實(shí)是有語(yǔ)法高亮功能的(但默認(rèn)情況下是被禁用的)进泼。Vim 也沒(méi)有行號(hào)顯示(也需要你去將其開(kāi)啟)蔗衡。
不用驚訝了纤虽,下面這些東西也是默認(rèn)沒(méi)有的:
- 默認(rèn)的 Git 集成
- 代碼提示
- 自動(dòng)標(biāo)點(diǎn)配對(duì)
- 代碼片段
- 自定義的顏色試圖
這些都是不預(yù)裝在 Vim 中的。
譯者注:其實(shí)寫(xiě)到這里绞惦,我覺(jué)得已經(jīng)有很多人萌生了退卻之意逼纸,確實(shí)要想玩好 Vim,需要花不少時(shí)間济蝉,免不了諸多的折騰杰刽。愛(ài)折騰的人自然是興奮不已,比如譯者自己王滤。但不愛(ài)折騰的贺嫂,譯者還是鼓勵(lì)去試著玩玩看,雖然現(xiàn)代 IDE 自帶了相當(dāng)多的功能雁乡,但是很多功能你也是需要去折騰才能熟練的使用第喳。
這似乎是一個(gè)巨大的轉(zhuǎn)折點(diǎn)——尤其是對(duì)于那些使用強(qiáng)大的 IDE 的開(kāi)發(fā)者們。大量的插件和擴(kuò)展被預(yù)裝在上面踱稍,為了能夠使工作更有效率曲饱。
從這個(gè)角度上來(lái)看,Vim 卻有其局限性珠月。
然而扩淀,在另一個(gè)方面,即便你欣賞現(xiàn)代 IDE 提供的東西啤挎,以及通過(guò)它們構(gòu)建出的東西——你也會(huì)意識(shí)到驻谆,大多數(shù)的 IDE (甚至是一些普通的編輯器,如 Atom)都帶來(lái)了大量的膨脹侵浸。
高級(jí)的 IDE 充斥著許許多多普通用戶幾乎很少使用的特性旺韭。
學(xué)習(xí)有效地使用 Vim 在某種程度上其實(shí)是一種鍛煉,你可以慢慢發(fā)現(xiàn)哪些插件對(duì)你來(lái)說(shuō)是至關(guān)重要的掏觉。重點(diǎn)是打造出一款適合你的需求和工作流的獨(dú)一無(wú)二的編輯器区端。(譯者注:這一點(diǎn)太能打動(dòng)我了 TAT)
多數(shù)情況下,使用 IDE 這些完全成熟體無(wú)可厚非澳腹。這些高級(jí)功能給你帶來(lái)的好處確實(shí)可能遠(yuǎn)超使用 Vim 帶來(lái)的织盼。
但是!Vim 能夠讓你搞清楚自己酱塔,因?yàn)樗侵泵婺愕膬?nèi)心的 :P
盡管 Vim 看起來(lái)光禿禿的沥邻,但是它其實(shí)是擁有一個(gè)非常完備、蓬勃發(fā)展的插件生態(tài)系統(tǒng)羊娃。
Vim 擁有幾乎所有你能在其他編輯器中用到的插件唐全。你只需要找到那些你需要 的就好了。
讓我驚訝的是,在只有少量插件的情況下我能走得有多遠(yuǎn)邮利。目前我的 Vim 大概只有 5 到 6 個(gè)“基本”插件組成弥雹,但我真不覺(jué)得我錯(cuò)過(guò)了什么。
Vim 并不是完美的延届,而且也絕對(duì)不是適合所有人的剪勿。
但是至少,學(xué)好 Vim 有一個(gè)好處方庭,萬(wàn)一你哪一天突然不小心打開(kāi)了 Vim厕吉,然后找不到如何退出的方法。械念。头朱。! ;)