學會了 Vim 還有必要用 GitHub Atom 或者 Sublime Text 么?
樓主自己也是vimer,用vim也有年頭了.
恩, 看到有人說vimer人少,那我也分享下自己的配置.https://github.com/582033/vim
我覺得,知乎上對vim的仇恨,很大程度上是那群非要讓你用hjkl不用游標鍵的vim狂魔造成的……他們非要讓你學三年才能入門,八年才能精通,才顯得vim跟日本人做壽司一樣充滿工匠精神。
然而,實際上vim入門只需要會i會esc會:wq就行了,剩下的東西需要的時候學學就好……沒有.
DemonCloud/dotfile
如果 vim/Emacs 已經用的很熟,——沒必要;如果只是聽過 vim/Emacs,並且聽說它們神奇的學習曲線,並且看過 tutorial 之後還不習慣也不喜歡,——why not take a try;
如果就想試試或者投奔之,考慮到要學習一套(個人感覺不怎麼方便記憶的)快捷鍵,——it is up to you;
如果是堅實的自由軟體/開源軟體擁躉,——不用我說,肯定不會用;如果只用過 IDE/notepad 之類,——試一下又不會懷孕;如果……能問出這個問題,試試那個最典型的選擇困難症患者藥方:交給硬幣,在看到結果之前,估計您已經有了自己的選擇。通用的文本編輯器,我認為 vim / emacs 學會一樣就夠了。因為他們的發展過程中經歷了足夠多的演變與交互,每個用戶都是程序員,不同的用戶的需要哪怕非常小眾往往在這類編輯器中也能找到解決方案,可以理解為 vim / emacs 是開發者與用戶進行了多年的深入的反饋交流之後產生的儘可能適合更多目標用戶需求的軟體。
學會 vim / emacs 之後,其實只有某些專門領域的針對某種語言特別優化的 IDE 對你可能有意義,比方說搞 C# 用 VS,比方說搞 Java 用 eclipse 之類。那些 IDE 的優勢在於專門為這門語言進行了很多語言級的優化適配,所以可能比你直接用編輯器更方便,當然這種方便性僅僅在你只使用為該 IDE 優化過的語言的情況下才有價值。對於很多需要編輯多種不同文本的程序員,他們需要接觸各種各樣的文本文件,通用文本編輯器更有價值。
若是一個通用文本編輯器 vs 另外一個通用文本編輯器?我找不到任何理由。實際上無論 sublime text 還是 atom,他們的目標客戶其實都並不是 vim / emacs 用戶。vim 是文本編輯器, Sublime 是代碼編輯器, Atom 是啟動速度和IDE一樣的代碼編輯器.
我的 vim 和 emacs 是這樣的. vimrc 不超過 100 行.
為什麼要把 vim 弄成連 vc6.0 都不一定比得過的 IDE, (如果你真的很喜歡 vim 的操作方式) 為什麼不在真正的現代 IDE 的 editor 里, terminal 里, 甚至瀏覽器里使用 vim key-binding.
sublime 我覺得沒有什麼可學的啊, 下個試試喜歡留著不喜歡刪掉就好了.
除了 vim, 由於以上的原因, 我認為可以學一下它的操作方式 (過一遍 30 分鐘的 tutorial 也就夠了), 其他這些編輯器的快捷鍵沒有必要刻意學, 用得多了自然就記住了.轉自國外網站,非原創,出處未明,請諒解。
讓我們把時間挪回你還是一個 Vim 新手的時候。和所有 noobs 一樣,你打開了 vimtutor。「hjkl,J的意思就是下。很好理解嘛,J 就是 JJ,JJ 當然是在下面的!」你為自己的聰明的聯想感到自豪。Vim 的學習曲線雖然陡峭,但是聰明的你經過三個月的學習終於初步掌握了基本的移動命令。接著你開始編程,你需要一個項目式的文件管理器,大部分 Vimmer 都知道NERDTree,可是 NERDTree 你很難搞清楚為啥有時候他不隨著 buffer 一起關閉。所以你大概忍耐了一段時間終於發現了NERDTree tabs。是的,使用 Vim 你不單只需要找到一個「好插件」,還要找到一個「好插件」的插件。
接下來你要在這個項目里查找文件了,當然你可以原生的grep及其延伸命令,但是你覺得每次都輸入太麻煩了,於是你找到了 Command-T ,後來發現這貨實在太 JB 慢了,然後你找到了 CtrlP ,終於變快了,又發現這貨的模糊搜索有問題。而你打開 Sublime 按下 CtrlP,發現不但模糊搜索沒問題,而且還快多了。接著你發現 Vim 內置的補全太弱了,你需要一個更強的補全和 snippets ,所以你找到了 snipmate ,然後你又發現了ultiSnips ,最後你終於找到了 neocomplete 。世界終於清凈了。你在 Vundle 輕鬆安裝成功。再次打開 Vim 卻發現出現了錯誤。原來,你還要自己下載 Vim 7.4 源碼 編譯一個帶 lua 支持的 Vim 才能支持 neocomplete。經過一番折騰,你終於成功編譯在 Mac ,VM 上CentOS ,Ubuntu 的 Vim 7.4 with lua。雖然各個系統過程各有不同,但你還是成功了。你想到當年等待了10秒 VS 才打開的日子,含笑對著eclipse的圖標說:"IDE ,suck it."。可當你打開 Sublime ,使用 Package Install 輕鬆安裝SublimeCodeIntel 之後,發現 import 可以實時補全也就算了,可幾乎所有主流語言都可以 ctrl+click 跳轉定義之後,知道真相的你眼淚掉下來。裝了28個插件之後,並且花了三個晚上的時間來解決你的鍵盤映射問題之後,你一臉滿足地看著你手寫了八百行帶注釋的 vimrc。發現,是時候為你摯愛的 Vim 做些什麼了。你打開了 Vim Wiki 搜索 Vimscript 的教程,發現那教程寫得和狗屎一樣,但你早已習慣了,Vim 本身自帶的 help 比起這教程也好多少不是嗎?「相比大部分 Vim 插件的文檔這教程已經很優雅了。」你安慰自己說。可當你看到 Vimscript 的語法時,你吐血三升,無刻板的 HKKB 終於有了鮮紅的印跡。在你昏迷當中,你夢到了原來 Vim 的文檔和 Vimscript 是未來機器人穿越過來改寫了逗你玩的。Honey,why don"t just try Sublime?It would"t get pregnant.有啊,除了在終端上我已經徹底轉到 atom 了,現代科技就是爽。但是 Vim 的插件是不能少的~ Vim 最爽的地方也就在於他的操作模式、宏和搜索了吧。基本上裝個Vim插件無縫平移。要善於接受新事物嘛,實用主義賽高~
多動症+強迫症患者慎用。vim/emacs/sublime/atom 這些編輯器都有個共同的問題,就是插件大多數是第三方開發的,質量參差不齊,快捷鍵相互衝突。有時寫著程序會突然發現某個插件/功能不好用,然後就上網搜一大堆配置,或者試一堆新插件,記一堆新快捷鍵,最後花了很多時間都忘了自己原本要幹嘛的。
如果你屬於上面這類人,並且 愛好不是折騰編輯器的話,那還是學習使用IntelliJ吧(寫100行左右這種小腳本就無所謂了,用啥都行)用了有四年gvim吧, 覺得它已經夠強勢了。
基本上vim熟練的人:
1. 可以自行定製任何功能。 2. 能把常用的功能自行控制在鍵盤上十隻手指頭及附近鍵位內以最快捷的方式觸發。--------- (這句話說得有點複雜, 因為我不知道應該用什麼語言來形容它)我十年前初步學會了用 Emacs 和 Vim,後來基本是 Eclipse 寫 Java,隨機編輯器(Vim,TextWrangler,TextMate)寫其它語言代碼。
今年因為要寫 Clojure 和 web 項目,懶得跟 TextMate 鬥爭之後果斷回到 Emacs for OS X。怎麼說呢?當你不是針對某一個語言(比如 Eclipse / IntelliJ for Java)的時候,Emacs 是最全能的。我辦公室的另外幾個前端,早早開始用 Atom,每當打開大文件時候都因為卡得痛不欲生換去 Sublime;然後 Sublime 也只會用一下搜索和打開文件。其它的事情還是在其它的地方做。每天看他們就是在琢磨各種工具而沒在做事。差別是什麼?差別是,你要找一個真正有潛力的工具然後去磨礪它。Emacs 有這個潛力,Vim 也許有,但 Sublime 也好 Atom 也好,你如果有這個能力去讓它們適應你,當然不在話下;只是因為「看上去比較方便」,你用什麼都一樣低效。用過sublime,我針對一些特定功能做過專門評測.離神器還有很大距離.sublime模擬vim插件我也用,一般般.
談到第三方插件質量,vim/emacs是第一陣營的.其他都是第二陣營.我看到很多使用 Vim 的朋友說,「我已經學會了 Vim,再也不需要任何編輯器了」。每逢看到這樣的話,我就會想到類似的「我已經學會了 Python,再也不需要別的語言了」「我已經學會了 Linux,再也不需要別的操作系統了」。可這樣的「信仰」,甚至宗教鬥爭,對你的進步一點幫助都沒有。編輯器也好,編程語言也好,它們都不是女人,你可以同時和好幾個在一起,不必從中選出一個和它廝守一生。
看了下回答,總感覺標題改過了呢。我大部分時間會使用vim進行編輯/開發工作,自己的vim已經調教成一個半IDE了。但我也會使用ST(沒出Atom)或Atom當作一個簡單的粘貼板。不用vim原因有以下:
- 因為vim一般作為開發,默認會顯示行號;
- 超過一屏也沒法粘貼(如果真要在vim下粘貼,我會:!cat %然後選取);
- 如果被粘貼對象是代碼,vim一般還開了autoindent,粘出來就如一坨**。
所以這時就是ST或Atom登場的時候了,臨時的粘貼都放在這裡,也方便進行簡單的修改再粘回去。
我買了sublime text,但現在主要用Vim,主要原因是我們的程序運行在遠程的機器上,當我需要部署的時候,把個人電腦上的代碼部署到遠程機器上會相當麻煩。於是我開發公司項目的時候基本上都選擇在遠程的機器上用Vim寫代碼。但平心而論sublime text比Vim要先進不少,「不折騰」這三個字勝過一千行vimrc。當我不面臨部署到遠程機器的問題的時候,我還是會用sublimt text的(不過現在還不大熟練,比較依賴滑鼠,效率一般)
搞gayui系列代碼的移植,讓我學會了在命令行下使用clang、vim和gdb。想起來已經斷斷續續的過了兩年。現在已經越來越不想用這些雞吧工具了,調試起GUI來一點都不方便,於是我跟 @Mili想了想,就用gayui去申請了雞吧公司系列軟體的open source license(主要衝著clion。
還挺容易,半個月就批下來了。沒必要,熟悉vim,其他的編輯器都已經可以刪掉了。我剛剛刪掉了atom,sublime從來沒有安裝過。
但是pycharm還是要用的,圖個方便,不過vim插件是一定要裝的。
另外,vim學起來不難,只是需要改變你的一些習慣,真的沒什麼,多多練習就可以掌握的。甚至比學習雙拼還要容易一些。好處就太多了,總之學會vim是很划算的。
再補充一下,其實代碼補全功能對於腳本語言幾乎是無用的。比如js或者Python。對於Java這樣的編譯語言其實也僅僅是一個提示作用。
有經驗的程序員,相信直覺,但更相信文檔。這個問題不成立,用上了vim你幾乎不可能想換編輯器
大家快來燒死題主這個背叛者我是個Vimer,但我不推薦新手嘗試Vim,更強烈不推薦新手在有IDE的情況下使用Vim來做C/C++開發。
我個人的話,目前坐等NeoVim。當下的Vim不可能完全代替Sublime和Atom。
有了Vim我還用IDE呢,雖然各種找IDE的Vim插件。
我把吹VIM的人和吹五筆的人分為一類
推薦閱讀:
TAG:文本編輯器 | Vim | SublimeText | Atom文本編輯器 |