摘要:但是,我還是決定闖一闖所謂的地獄。幸運的是,編程社區(qū)都承認的地位。這也使得能夠脫離在世界上最好的兩種事物上要做出選擇的苦海。其實是有語法高亮功能的但默認情況下是被禁用的。并不是完美的,而且也絕對不是適合所有人的。
這是第一篇翻譯文,帶著興奮,翻譯自己喜歡的文章,這種感覺很美妙~
先介紹下本文的作者:
Sanchit Gera
Just another opinionated, run-off-the-mill geek ? AdTech @Amazon ? Engineering @uWaterloo.
原文鏈接:How I learned to love vim
以下是譯文:
我與 Vim 之間既苦澀又甜蜜的關系維持了相當長的一段時間。
在過去的幾年間,我數(shù)次嘗試著去學習 Vim,但每一次到最后還是放棄了。我更愿意去使用我的“初級”文本編輯器(通常是 Atom)。
但在幾周以后,我發(fā)現(xiàn)自己無法使用 Atom 了,因為其中一個模糊的連通性問題,這個問題使得我建立在遠程連接的設置完全失效了。
在經(jīng)歷過五個令人悲傷的階段后(譯者注:哦,天知道發(fā)生了什么),我決定咬緊牙關(再一次)試著去學習 Vim。這一次我強迫自己去使用 Vim,并且是只使用 Vim。
我知道——我可以很輕松的轉(zhuǎn)向另一種更簡單易用的編輯器比如說 Sublime。或者甚至可以使用非常成熟的 IDE 比如 IntelliJ。
但是,我還是決定闖一闖所謂的“地獄”。下面是我學習到的一些東西:
學習基礎如果你沒怎么用過,Vim 可能看起來像是一個非常古老的文本編輯器。說起它的來源,需要追溯到一款在七十年代出現(xiàn)的叫做 Vi 的程序。
由于 Vim 的設計初衷就是完全依賴鍵盤就能工作的編輯器,所以這也成了它既吸引人又讓人討厭的地方。畢竟當 Vi 被構(gòu)思出來時,只需要鼠標點點的那些 GUI 可視化界面還并不是怎么實用的東西呢。
Vim 使用模式(mode)的方式來操作,有兩種主要的模式最常被使用到:
正常模式(Normal mode):這種模式是在你瀏覽、編輯或者操作文件的時候使用。如果你不涉及輸入新的內(nèi)容到文件中,該模式下你可以做任何其他事。大多數(shù)的 Vim 命令都是在這個模式下完成。
插入模式(Insert mode):這種模式允許你輸入新文本到文件中去,這時候 Vim 表現(xiàn)得更像是一個“正經(jīng)”的文本編輯器,比如 Atom 或者 Sublime。當然了,還是不需要使用鼠標的,即使你想用也用不了 :)
Vim 也還有其他模式,其中一個是 虛擬模式(Visual mode),在選擇大段文本的時候使用。一般來說,這些模式在平時使用的頻率不高。
Vim 一般是在終端模擬器中使用的,但多帶帶的發(fā)行版也是有的。Vim 可以被使用在任何 Unix 和 Linux 操作系統(tǒng)上。Vim 的爺爺——Vi,作為 UNIX 規(guī)范的一部分,很自然的,它被預裝在任何基于 UNIX 的合格操作系統(tǒng)上。
可組合性“可組合性”使得 Vim 在很大程度上區(qū)別于其他編輯器。它賦予了 Vim 獨有的語言。
它在文本編輯和操作的語境中,引入了名詞和動詞的概念。
動詞描述的是你能做什么(比如刪除、改變、移動等)。
名詞描述的是正在發(fā)生的事情(通常是單詞、行或者文本中的某些地方)。
其中一些常見的動名詞包括:
動詞 d:刪除 c:改變(覆蓋) y:復制 >:縮進 <:取消縮進 操作 h,j,k,l:向左,向下,向上,向右 w:下一個單詞 b:上一個單詞 0:行首 $:行末 i:單詞內(nèi)(不含下一個字符) a:單詞周圍
這份列表并不詳盡,其實有非常多可使用的快捷鍵。但是你僅僅使用其中非常基礎的幾個快捷鍵就能夠?qū)崿F(xiàn)大部分操作。方法就是將動名詞和偶爾出現(xiàn)的數(shù)字組合在一起,你就能創(chuàng)建出不同的 行為 去操作需要的文本。
舉個例子,為了刪除一個單詞(delete a word),你可以鍵入組合鍵 dw。
從當前位置刪除兩個單詞(delect 2 word),你可以輸入 d2w。
從當前位置一路刪除至行末,你可以輸入 d$。
(譯者注:我其實也是一個 newbie,看到這幾個例子立馬去試了一下,發(fā)現(xiàn)真好用,試著鍵入 d0,哈哈,果然將當前位置至行首的內(nèi)容都刪除了~)
刪除當前括號內(nèi)的所有內(nèi)容,你可能會鍵入 di(,是的,就是這樣 :)
這種工作方式似乎沒有什么好爭論的,它們是那么高效優(yōu)雅。如果你強迫自己每天去使用這些組合,它們會成為你的第二天性。在一段時間后,你會發(fā)現(xiàn)通過減少按鍵次數(shù)而獲得的編輯速度是令人驚訝的。
Vim 讓人上癮是的,我知道這個已經(jīng)被用的不能再多了,但請允許我再用一次 :)
Vim 有著臭名昭著的學習曲線。而一旦你度過了那段艱難時期——經(jīng)常對著電腦屏幕發(fā)詛咒(譯者注:當你用不了鼠標,想要跳到某個字符卻不知道怎么能快一點,傻傻的移動方向鍵,內(nèi)心是多么的崩潰。。。),Vim 用起來其實挺好玩的。
學習使用 Vim 的那些神秘命令,讓你能夠在操作文件上飛起來~一段時間過后,當你的手指離開了鍵盤或者不自覺的去使用鼠標的時候,你會覺得哪些地方不對勁(譯者注:Vim 讓你的手指完全不需要離開鍵盤就能飛一般的工作,用慣了 GUI 的我在以前想都不敢想。。。怎么可能嘛,是的,Vim 做到了!)
僅僅在一個月之后,我發(fā)現(xiàn)自己在使用電腦的時候總是會不自覺的去用那些快捷鍵,盡管那些軟件并沒有這些快捷鍵。
事實上,我也曾經(jīng)考慮過在瀏覽網(wǎng)頁的時候嘗試使用這個 擴展 來啟用 Vim 快捷鍵。
幸運的是,編程社區(qū)都承認 Vim 的地位。大多數(shù)主流的文本編輯器都總是有那么一些方法能夠啟用 Vim 的快捷鍵。這也使得 “Vimmers” 能夠脫離在世界上最好的兩種事物上要做出選擇的苦海。
給 Vim 一次戰(zhàn)斗的機會要想提高在 Vim 上的造詣,沒有任何其他什么武功秘籍,唯有日夜苦練基本功。行之有效的方式就是強迫自己用 Vim。
舉個例子,當你使用 Vim 編輯文件的時候,盡量不要使用你之前的舊習慣。大多數(shù)人在剛開始的時候應該盡量遠離 ‘正常模式’。
相反,他們試圖花盡可能多的時間在‘插入模式’上。在這個模式上,很容易讓人產(chǎn)生舒適感。這也容易讓人在編輯文件的時候?qū)W不到任何其他新的東西。很明顯這是一個錯誤。
如果你確實有興趣學習如何讓 Vim 為你工作,那么你必須付出一些努力,花些時間去找出做事情的正確方式。
如果你發(fā)現(xiàn)自己為了完成任務,不停地重復按那些鍵,請先停下來。因為很可能你正在做的事情有更好的方式去完成。
Google 一下,記住它,加入你的知識庫中。相比于去閱讀整個命令清單并試圖希望自己會在將來會需要用到其中一個命令,用這種方式非常容易能學到新的命令。
在一段時間后,當你在無腦敲鍵盤的時候,你就可能會產(chǎn)生一種直覺(譯者注:這種直覺類似于意識到自己目前在解決這件事的方式上可能會有更好的處理辦法)。那么請聽從你的直覺。
感謝(?)現(xiàn)代編輯器許多人回避 Vim 的另一個重要原因就是 Vim 看起來光禿禿的只有編輯這一個最最基本的功能。
確實,默認情況下,Vim 本身并沒有自帶什么插件或者好用的功能的。并且,Vim 認為好用的功能可能與程序員使用的現(xiàn)代 IDE 認為的好用的功能有著比較大的差別。
Vim 其實是有語法高亮功能的(但默認情況下是被禁用的)。Vim 也沒有行號顯示(也需要你去將其開啟)。
不用驚訝了,下面這些東西也是默認沒有的:
默認的 Git 集成
代碼提示
自動標點配對
代碼片段
自定義的顏色試圖
這些都是不預裝在 Vim 中的。
譯者注:其實寫到這里,我覺得已經(jīng)有很多人萌生了退卻之意,確實要想玩好 Vim,需要花不少時間,免不了諸多的折騰。愛折騰的人自然是興奮不已,比如譯者自己。但不愛折騰的,譯者還是鼓勵去試著玩玩看,雖然現(xiàn)代 IDE 自帶了相當多的功能,但是很多功能你也是需要去折騰才能熟練的使用。
這似乎是一個巨大的轉(zhuǎn)折點——尤其是對于那些使用強大的 IDE 的開發(fā)者們。大量的插件和擴展被預裝在上面,為了能夠使工作更有效率。
從這個角度上來看,Vim 卻有其局限性。
然而,在另一個方面,即便你欣賞現(xiàn)代 IDE 提供的東西,以及通過它們構(gòu)建出的東西——你也會意識到,大多數(shù)的 IDE (甚至是一些普通的編輯器,如 Atom)都帶來了大量的膨脹。
高級的 IDE 充斥著許許多多普通用戶幾乎很少使用的特性。
學習有效地使用 Vim 在某種程度上其實是一種鍛煉,你可以慢慢發(fā)現(xiàn)哪些插件對你來說是至關重要的。重點是打造出一款適合你的需求和工作流的獨一無二的編輯器。(譯者注:這一點太能打動我了 TAT)
多數(shù)情況下,使用 IDE 這些完全成熟體無可厚非。這些高級功能給你帶來的好處確實可能遠超使用 Vim 帶來的。
但是!Vim 能夠讓你搞清楚自己,因為它是直面你的內(nèi)心的 :P
盡管 Vim 看起來光禿禿的,但是它其實是擁有一個非常完備、蓬勃發(fā)展的插件生態(tài)系統(tǒng)。
Vim 擁有幾乎所有你能在其他編輯器中用到的插件。你只需要找到那些你需要 的就好了。
讓我驚訝的是,在只有少量插件的情況下我能走得有多遠。目前我的 Vim 大概只有 5 到 6 個“基本”插件組成,但我真不覺得我錯過了什么。
Vim 并不是完美的,而且也絕對不是適合所有人的。
但是至少,學好 Vim 有一個好處,萬一你哪一天突然不小心打開了 Vim,然后找不到如何退出的方法。。。! ;)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/24997.html
摘要:自從的浮動窗口被合到以后,很多插件都利用了這個特性實現(xiàn)了很多很酷的功能,比如,另外和也利用了這一特性。首先是個配置項讓輸入上方,搜索列表在下方打開的方式選擇還有個函數(shù)指定如何打開浮動窗口設置浮動窗口打開的位置,大小等。 fzf 是一個非常高效實用且美觀的命令行工具,并且配置有對應的 vim 插件 fzf.vim, 相信很多人都用過。這里就不在贅述,如果你還沒有用過,很推薦一試。 自從 ...
摘要:前言之所以會寫這篇文章是因為在一年的前端學習過程,我走了很多彎路,也思考了很多,最近又正好拿到了某廠的,希望以我之拙見能給初學者一些幫助。不過前端的方向,主要還是自學。 前言 之所以會寫這篇文章是因為在一年的前端學習過程,我走了很多彎路,也思考了很多,最近又正好拿到了某廠的offer,希望以我之拙見能給初學者一些幫助。 我的學習之路 我是一個計算機相關專業(yè)的大三學生,不過實際上我的專業(yè)...
閱讀 1198·2021-11-10 11:35
閱讀 2925·2021-09-24 10:35
閱讀 2957·2021-09-22 15:38
閱讀 2807·2019-08-30 15:43
閱讀 1338·2019-08-29 18:39
閱讀 2558·2019-08-29 15:22
閱讀 2789·2019-08-28 18:17
閱讀 612·2019-08-26 13:37