為什麼很多人認為編輯器比 IDE 更酷?

做一個像 IntelliJ 這麼厲害的 IDE,明明是一件很酷的事情。能寫出這樣軟體的人,水平應該不低,若是他們本人出現,恐怕沒有多少人敢於說他們水平低、不酷、不夠黑客。

為這樣的平台做開發也很酷。IDE 擴展性並不比編輯器更弱,甚至更強(IntelliJ Platform SDK Documentation / IntelliJ Platform SDK DevGuide)。IntelliJ 只要有解析器(可以從語法文件迅速生成),再稍加修改就能作出帶有跳轉、高亮、靜態分析、自動格式化、自動補全的新語言插件。只要願意鑽研,可以實現的功能幾乎沒有限制,比大部分編輯器簡陋的自動補全和高亮(我懷疑僅僅是基於 tokenize 的)高到不知道哪裡去了。實際上,對語言理論具有同樣造詣的人,在 IDE 上開發語言支持,相比在編輯器上應該更得力。

就現狀而言,IDE 對 C/C++/Objective-C/Swift/C#/Java/Groovy/Scala/Clojure/Ruby/Python/Kotlin/PHP/JavaScript/CoffeeScript/TypeScript/http://VB.NET/Go/SQL/PHP/Shell/Perl/Bat 等編程語言的支持都顯然在編輯器之上,更不用說周邊的模板語言、標記語言、樣式語言了。就連許多配置文件都有良好支持。其實配置文件語法簡單,做 IDE 支持並不難。

在這樣的平台上做開發難道不酷嗎?比如上伺服器修改文件,只要能 SSH 就可以用 SFTP,IDE 同樣可以做到這個功能,並不為輕量級編輯器所獨。對於鍵盤流,IDE 插件能模擬各種編輯器的快捷鍵,IDE 本身的操作也都可以分配快捷鍵。至於調試、自動化什麼的,更是不在話下,還可以有圖形化監控。

但是人們為什麼會有「用 Vim/Emacs 才是真正的黑客,IDE 都是弱者才用的」這類想法呢?


拿我自己舉個例子吧。我不是程序員,我是交易者,給你看我的 Vim 配置成什麼樣:

基於 gvim 的股票操作界面

它實現了一些我想要但是市面上軟體沒有的功能,可以讓我在交易的時候有那麼一點點優勢,所以對我來說這不是酷不酷的問題。

如果一個程序員喜歡的話,他也會把他的 Vim 配置成可以實現任何功能,然後在自己熟悉的環境下,用自己喜歡的命令 / 按鍵來操作,操作的結果通過 Vim buffer 來查看。

我想解釋一下這個 「可以實現任何功能」 ,請題主不要誤解。我的 Vim 源代碼壓縮文件只有 9.8M 大,一個 9.8M 的軟體,它能做的事情必定沒多少。Vim 自己實現的功能主要就是它的本職工作:文本處理而已。所以請不要拿它跟 IDE 比了,它們完全不是一類軟體,不能在一起比較。

Vim 是一個殼,可以包覆在任何後台功能上面。你也可以把它看作一個代理,它提供通用的 I/O 界面服務,可以把你喜歡的自定義命令和按鍵,映射到任何你想要的後台功能上面。這個後台功能可以是你自己實現的,也可以是其它程序實現的,包括你的 IDE 實現的。

如果你想自己實現後台功能,你可以給 Vim 寫插件來擴展它。Vim 支持主流的腳本語言,Python, Perl, Ruby, Lua。這些語言有無數第三方包,滿足你對功能的需求。Python 本身又可以用 C/C++ 來擴展。也就是說,你想用的語言幾乎沒有限制。所有這些語言,包括他們的 package 能實現的功能,你在 Vim 里都可以擁有。

如果你想用其它程序的功能,這可以通過 IPC 實現,你只需要寫一個 IPC 的部分。因為是人機交互,一點點 lag 不是問題,而且我的自定義命令/快捷鍵總是快過你的滑鼠。對於 IDE 來說,只要它開放了 API,我就可以在 Vim 里使用它,它開放多少功能,我就可以擁有多少。&它沒有開放的部分,我就破解 COM,或者我乾脆模擬按鍵。& 在這些的基礎上,我又有了 Vim 的編輯效率,這多好呢?

還有,Python 的某些第三方包專門就是用來控制某些特定程序的,實現很完善。比如你通過 Selenium 介面可以控制各種瀏覽器,控制流程拿你喜歡的 Python 寫,自動化 Web 開發無壓力了有木有?你想要圖形也沒問題,起一個 PyQT 界面,或者直接 Matplotlib 界面,瀏覽器也可以當圖形界面,文本操作跟圖形操作隨心切換,各種數據可視化,我就拿 Matplotlib 看股票圖。文本編輯器?拿衣服了有木有 ~

所以,請不要再拿一個 10M 大的程序跟 IDE 比了。Vim 流行是因為它完全無節操的拿來主義,我的是我的,你的也是我的,這才是 Vim 真正 「酷」 的地方,謝謝。


除去資源佔用低,命令行界面等等一些不一定會用到(雖然很有用——我經常用到)的特性,

個人認為,Vim 酷在於其 modal editing,寫代碼效率是很高的。Emacs 酷在哪我不太清楚,感覺是可擴展性,projectile company-mode flycheck 等插件組成了基礎,你要添加一個新的語言支持並不麻煩(雖然 IntelliJ 在這一點上做的也很好),上網一搜什麼奇怪的語言都有支持。而且寫插件用的是 elisp,這也算是酷的一點吧(雖然連 module 都沒有.. 呃,不過這麼多年了大家也都是這麼過來的)。

Eclipse / IntelliJ 則是優秀在特定的語言支持上,比如 Java,各種重構跳轉補全還有代碼自動插入,別人難以望其項背。再就是用一種靜態類型的語言(Java / Scala / Kotlin)寫插件想必也是比較好維護的。

不用搞得太對立,大家還得相互學習一個嘛。像 IdeaVim 這樣取長補短的就很好;Spacemacs 這樣的全家桶簡化了插件安裝和配置過程,對 Vim 用戶也非常友好,我們也要支持。


還在上大學的時候,總能看到網上有人在討論 Emacs/Vim 之類的編輯器怎麼怎麼好,當時還比較年輕,一頭扎進編輯器的學習不能自拔,最後 Emacs 和 Vim 基本都掌握了(霧,最後用了 Spacemacs)。

當時年輕到什麼程度呢?就是看不慣所有使用 IDE 的人。看不慣的原因呢,很簡單,就是我能用鍵盤做很多酷炫的編輯操作而不用動一下滑鼠,什麼?你還在用 VC++ 6.0,low 爆了好嗎!

我是因為什麼開始轉變了呢?

當我看到用 VC++ 6.0 的朋友寫的程序比我還漂亮的時候,

當我焦頭爛額地用 gdb 調試了很久還找不到 bug,而用 IDE 一下就找到了問題原因的時候,

當我知道寫 iOS 只能用 Xcode 的時候(淚目,Xcode 真的不好用)......

酷,的確,用這兩個編輯器寫東西真的很酷,酷到手可以不離開鍵盤,各種酷炫的跳轉,生產力提高 100 倍。但是在酷的時候看不起別人的工具就是一種不理智的行為了。

漸漸地,我知道了,工具只是作為你實現東西的方式,跟最終的結果沒有直接的關係。找到適合自己的工具才是最好的。


我一直覺得這是個很無聊的問題,特別是很多人在問這個問題的時候,腦子裡早就已經有一個別人改變不了的答案了。所以我很少跟人討論這個問題。

但是題主問問題問得很認真,我覺得也許我說的答主能放開偏見認真聽下去,所以也就不吝在這個凌晨零點洗完澡裸著膀子答一發咯。

覺得IDE更好的陣營,最主要的原因當然是【IDE更理解你的代碼】。

一個簡單的例子,就是常說的代碼重構,也就是給某個變數重命名。

打個比方,我這兒有一段代碼:

var request = {
requestId: 0
requestBeginTime: "2016-06-21 01:10:00"
requestContent: "fxxx me with love"
}
console.log("the request content: " + request.requestContent)

(好久不寫js,見諒,也許IDE讀不懂這段代碼,但你應該可以對吧。。 (因為我好像漏了逗號。。

這是關於日誌處理的一段代碼,大致就是說,我得到了【請求】這個玩意,然後根據這玩意的內容,列印一行文本到控制台。

然而,【請求】這個詞,怎麼說呢,太"被動"了,也許有時候我們的服務並非收到【請求】做某件事,而是主動做某件事(比如定時執行某項任務),這種時候其實也一樣需要打日誌。所以呢,我這裡需要把【請求】擴展為一個更普適的概念:【事務】。於是我"重構"了代碼:

var transaction = {
transactionId: 0
transactionBeginTime: "2016-06-21 01:10:00"
transactionContent: "fxxx me with love"
}
console.log("the transaction content: " + transaction.transactionContent)

你看,我用編輯器幾秒鐘就搞定了這件事,然而這時候IDE的重構功能並沒有什麼卵用。 我的"重構"就是想把這裡的"request"這個概念換成"transaction"這個概念,而不是把那個叫request的變數換成叫transaction的變數。

所以你IDE在那分析半天的變數作用域,卡個半死,然後給我替換了一個變數名,卻把欄位名里,和要列印的字元串里的內容留在那發霉。幾個意思? 要你何用?

所以自己給東西起好名字,把概念弄清楚,比依賴IDE提供的"重構"功能,其實是要更靠譜的。

當然了我也不是說IDE的這些功能一定沒有用(斜眼:那你到底在說什麼。。。

我只是想說,最懂你意思的人,只有你自己。

理解語義這種事情,至少目前階段,機器還差得遠。所以我對機器的要求就是,大體上理解什麼是詞(一個簡單的正則文法),理解什麼是句(同前,但是可以更簡單,我只要求我的Vim理解"行"就好)。 把這些簡單的事情做好,就已經盡到一個機器的義務了,剩下的我能搞定,你幫我瞎猜並不能幫到我很多。。。

所以我覺得,一個比較好的態度是:

想好自己要做什麼,然後用最合適的工具去做。

而不是:

發現有個工具有這個功能,然後用起來試試,咦,好像這是我要的效果耶,嘿,那個XXX,你知道么,這個東西很好用。。那些不用它的人都是sb。。

關於批量插入代碼功能。

如果你喜歡批量插入代碼功能(比如自動補全for循環啥的),那麼也許你並不是喜歡批量插入代碼這個功能(喂喂,你到底知不知道自己在說什麼。。。

而是喜歡在更高級的抽象層次上去解決問題。

如果你想在更高級的抽象層次上去解決問題,那麼合適的手段,是通過編程語言提供的抽象能力去解決,而不是通過批量插入代碼這種方式。

不是因為這樣比較low,顯得不高大上。

而是,批量插入問題多多,你插入的時候開心,刪除和修改的時候也能一樣開心么? 一旦一個整體概念被打散散落在字元之間,那麼很多信息已然丟失。

(這裡是說,假如你批量插入一段代碼到n個地方,那如果這段代碼有變動,你就得同時修改這n段代碼,而這種時候很容易產生遺漏導致bug。。

所以,我所理解的【不要依賴IDE】,是指如果你想在更高的抽象層次上工作,那麼你值得信賴的夥伴是編程語言提供的抽象能力,如果編程語言提供不了某些能力,那就換編程語言。如果找不到合適的語言,甚至可以嘗試自己設計編程語言,自己做代碼生成(或者說編譯)。

當然,各自陣營還發出了一些別的聲音我們也可以一起來看一下

(總之,,我覺得這些統統不是重點。。

(那你還說這麼多。。

1. 編輯器輕量,可以方便地在ssh終端使用

2. 編輯器可以做靈活的文本操作(如以"詞"為單位移動,修改,甚至以"代碼塊"為單位移動,修改)

3. 編輯器可以方便的批量操作較規則的文本內容(比如批量替換,塊選編輯,宏錄製)

4. 編輯器可以方便地進行自定義(如鍵映射,開發自己的插件)

5. 編輯器可以用來瀏覽文件目錄,在tag之間跳轉等等(這些其實是劣勢,只不過很多人在show自己的編輯器給IDE黨的時候會把這玩意show出來,所以我還是提一句(捂臉。。

6. 編輯器提供的功能更通用,換句話說,"語言無關"

7. IDE"更理解"你的代碼

8. 用IDE項目管理更方便

9. IDE是未來

(算了懶得編了編不下去了,各位看官要是有什麼好點子趕緊貢獻出來。。。

一個一個地說:

1. 這真的是最最不重要的一點了,如果我開發IDE,其實只要搞個遠程編輯功能就解決了,只要有ssh許可權,完全可以把遠程文件映射到本地,然後讀寫通過scp傳遞一下,其實Vim就支持這功能,如果說IDE不支持,那肯定是IDE設計者腦抽了,即使IDE設計者腦抽了,也肯定有Git早就想到這些弄出第三方插件了。雖然我不用IDE,但這些我覺得我不會估計錯(如果錯了,那我就趕緊去開發一個也火一把嘿嘿。。

2. 其實IDE也可以做,如果沒做,也純屬腦抽了。(但是不得不說Vim的一套快捷鍵確實是很好的設計啟發。。

3. 這些功能本身真不是什麼難的東西。。難的是設計的足夠好用,當然這方面我覺得編輯器確實做得不錯(在看到某些IDE用戶還在糾結文本替換的問題的時候。。

4. 這些也屬於技術不難,但編輯器設計地很好的一類,跟2,3一樣

5. 如前所說,這其實是編輯器的劣勢。。。

6. 這個有人覺得是優勢有人覺得是劣勢吧。。(我屬於前者

7. 這一點一直是編輯器被詬病的地方,但是話說回來,不就是代碼的靜態分析么,編輯器通過調用外部提供的解析服務其實一樣做。。當然更重要的一點,還是前面說的,要真正理解語義還是得靠自己。。

8. 這個其實差別沒有很大。。

9. 這個說不好,也許未來出現的玩意已經不叫IDE(集成開發環境)了,人家要管新玩具叫IEE(集成表達環境)神馬的也說不準對吧。。。


有時間糾結這個,不如多寫兩行代碼。

用不慣的東西可以不用啊。

我幾年前就學慣用過一段時間gvim,後來發現sublime text很方便。

但這些編輯器對我來說,最主要是臨時改文件用的,IDE一直有在用,.NET用vs,PHP,JAVA用Idea。

習慣用vim/emas一般都是比較資深的程序員,那個年代由於電腦配置,和IDE本身並不強大的關係,練就了一手硬功,於是延續下來,並且用得很好.

如果現在在畢業生/剛入門的花個幾個月甚至幾年先去學好一個編輯器再去搞開發,就有點搞笑了(當然,個人愛好不鄙視)。

工具而已,怎樣效率高,方便就怎樣,除非你是對工具本身有興趣。

另外,VIM不熟的,學習一下是很有必要的,像遠程操作Linux系統這種情況,並沒有很好的編輯器可以用,在命令行用vi改些配置什麼的還是很方便的。


我是不大同意,編輯器難用所以才可以拿來吹這種觀點的。 我是實用主義,哪個工具拿起來能更好的解決我手頭的問題,那我就用哪個編輯器。

因此,寫Java代碼的時候,我會選擇用Intellij而不用emacs

因此,看日誌的時候,我會選擇less而不用intellij 或者 emacs

因此,跟蹤遠程日誌的時候,我會用emacs而不是less 或者其他

因此,在有必要的時候會寫上一小段Python腳本來完成手頭的事情

實用才是最重要的, 能不能炫耀那是次要的事情。


二十年前,IDE 用戶:Delphi 最牛逼!

二十年前,Vim / Emacs 用戶:Vim / Emacs 最牛逼!

十年前,IDE 用戶:Eclipse、NetBeans 最牛逼!

十年前,Vim / Emacs 用戶:Vim / Emacs 最牛逼!

現在,IDE 用戶:IntelliJ 最牛逼!

現在,Vim / Emacs 用戶:Vim / Emacs 最牛逼!

十年後,IDE 用戶:*** 最牛逼!

十年後,Vim / Emacs 用戶:Vim / Emacs 最牛逼!

幾十年過去了,你都換了好幾輪了,但是某個東西還在跟你正面硬剛,你說它酷不酷?


因為在貴忽 就是,我不會用的你用就是裝比。

跟中國人仇富是一個道理,我窮比,你有錢你就是來路不正,你就是暴發戶,你的錢就是黑錢。

其實說到底是一種酸比心裡,會用的人自然就知道Vim, Notepad++ 這類editor的價值,不會的人就會在這bb笑你裝逼。其實我用什麼editor和你有什麼關係,沒人叫你多看我一眼。我又沒帥的驚動了天,驚動了地,驚動了政府,驚動了黨。。

一般這種人你都懶得理他, 遇到都是不回復的,你和他一般見識打嘴炮等於浪費你的Life time.

評論開放,大家使勁噴。么么噠


我是感覺各有各的優勢,而我傾向於Vim的原因僅僅是因我我比較熟悉Vim,可以關注下SpaceVim

https://spacevim.org


編輯器酷不酷,取決於你是誰?你是做什麼的?你想做些什麼?

如果你是一個為公司服務的開發者,每天寫上一堆代碼,希望能給公司帶來不錯的收益,這樣你也能夠得到地位的提高,工資的上漲,那麼這時候編輯器一點也不酷,而且還很蠢。可能你每個星期利用上班時休息時間的兩小時配置你的 Emacs 或者 VIM, 而另一個程序員則利用這兩個小時完善一下自己的知識儲備,熟悉一下公司的框架,那麼在老闆眼裡,在其他同事眼裡,哪個更酷?當然是後一個,因為他為公司創造了更多的價值。也可以看出他是一個實用主義者。

但是讓我們換一種情況看看。你是一個計算機程序工程師,你每天創造出的程序不僅僅是為了提升自己的工資,或者是為公司帶來收益。而你希望它能夠為全世界帶來更大的價值。有一天,你突然覺得你現在手上的工具不太順手(可能是 IDE,也可能是某個社區的編輯器),然後你思考了1個小時,你突然發現如果你將這個工具進行XXX方式的改造,然後你可以將你的工作效率提升到 120%,是的,你現在的心情一定是非常的激動。

接著你又花費了1個小時完成了你的思路,你測試了一下,嗯,非常不錯,完美!好了,你現在有幾個選擇:第一,不告訴任何人,自己一個人偷偷地使用,很好,這樣子你每天可以創造更多的價值,而別人無法和你匹敵,你可以在你的公司(或者你的團隊)里更加脫穎而出,別人會更加崇拜你;第二,在你的公司(團隊)里共享,很棒,你的團隊的整體工作效率大幅度提升了,每個人都會感謝你,同樣地,他們也會更加崇拜你,但是你和他們之間沒有那麼大的差距了,你失去了一個優勢,但是你的公司(團隊)相比其他的公司(團隊)有了很大的優勢;第三,直接在互聯網上與所有人共享,你推動了整個社區的發展,但是所有人也都知道了這個方法,你或者你的團隊沒有任何優勢的提升。

而在這裡就能看出編輯器和 IDE 的差距了,如果你用的是一個IDE(例如InteliJ),那麼可能某一天這家提供服務的公司(jetbrain)宣布不再支持此項目了。假設你選擇了不向其他人公開你的秘密,那麼這個項目關閉對你來說也沒什麼影響,估計到那時你都已經賺到了一大筆錢,都已經籌備好你的退休計划了。但是如果你是選擇向社區公開你的秘密,那麼很可惜,因為這個IDE已經不再強大了,你的貢獻也會被別人遺忘。而如果你的貢獻是在Emacs / Vim這樣的社區里,那麼即使哪天GNU宣告破產了,你的貢獻也會一直在那個社區里,繼續幫助著千千萬萬的小開發者。

這其實也就是我們說的 「黑客精神「,Hacker們認為美好的事物應該是大家共享的,而不是某個公司某個團隊的特權,也正是這樣的精神一直在推動著Emacs / Vim這樣的開源社區不斷壯大,推動著諸如Richard Stallman, Donald Knuth, Paul Graham這些偉大的開發者使用 Emacs / Vim,並打造自己的工具,再發布到社區中。即便 Emacs / Vim有著恐怖的學習曲線,任何時候都會有人帶著一腔熱血加入到這個社區里,接著就會學習這個社區的精神,分享任何摸索出的經驗,並且向這個社區貢獻自己的力量。

那麼,你覺得編輯器酷不酷呢?


少年,你的問題是《笑傲江湖》讀得太少,想得太多。

為什麼要有門戶之見?

一輩子和華山派氣宗師兄們混在一起詆毀劍宗就是你的最高追求嗎?

為什麼不獨孤九劍,吸星大法學個遍,最後娶個魔教教主?為什麼不能短時間內精通所有IDE加上VIM加上Emacs?

笑傲江湖還是自絕於江湖就取決於你的一念之間了。


只要願意鑽研,可以實現的功能幾乎沒有限制,比大部分編輯器簡陋的自動補全和高亮(我懷疑僅僅是基於 tokenize 的)高到不知道哪裡去了

然而這是錯的,vim的ycm照樣直接拿clang做補全。你再鑽研,你寫出來的東西能比直接拿真的編譯器前端幹得更好?

你還從語法文件「自動生成」解析器,你給我寫一個正確的C++ 17語法文件試試?別人clang的parser,比你的語法文件高到不知道哪裡去了。

最後,你的問題其實有個邏輯錯誤……IDE里的編輯器也叫編輯器。語法高亮,代碼補全是編輯器的功能。你不能說,白馬比馬跑得快,邏輯上這沒道理。


這樣引戰,要不是相應編輯器或是IDE的高端用戶,是很沒意思的。

不過吶,作者根本沒有給出任何有效的論據,基本上都是「我說更強就更強」。那我老實不客氣的抄襲了。

==========================================================

做一個像 vim 這麼厲害的 編輯器,明明是一件很酷的事情。能寫出這樣軟體的人,水平應該不低,若是他們本人出現,恐怕沒有多少人敢於說他們水平低、不酷、不夠黑客。

為這樣的平台做開發也很酷。vim 擴展性並不比IDE更弱,甚至更強(Vim (text editor) )。vim 只要有解析器(可以從語法文件迅速生成),再稍加修改就能作出帶有跳轉、高亮、靜態分析、自動格式化、自動補全的新語言插件。只要願意鑽研,可以實現的功能幾乎沒有限制,比大部分IDE簡陋的自動補全和高亮(我懷疑僅僅是基於 tokenize 的)高到不知道哪裡去了。實際上,對語言理論具有同樣造詣的人,在 vim 上開發語言支持,相比在IDE上應該更得力。

現狀而言,vim 對 C/C++/Objective-C/Swift/C#/Java/Groovy/Scala/Clojure/Ruby/Python/Kotlin/PHP/JavaScript/CoffeeScript/TypeScript/http://VB.NET/Go/SQL/PHP/Shell/Perl/Bat 等編程語言的支持都顯然在IDE之上,更不用說周邊的模板語言、標記語言、樣式語言了。就連許多配置文件都有良好支持。其實配置文件語法簡單,做vim支持並不難。

alaya@matrix[syntax] $ pwd
/usr/share/vim/vim74/syntax
alaya@matrix[syntax] $ ls -l | tail -n 15
-- 1 root root 8609 4月 8 20:44 xml.vim
-rw-r--r-- 1 root root 46499 4月 8 20:44 xmodmap.vim
-rw-r--r-- 1 root root 4655 4月 8 20:44 xpm.vim
-rw-r--r-- 1 root root 4987 4月 8 20:44 xpm2.vim
-rw-r--r-- 1 root root 7191 4月 8 20:44 xquery.vim
-rw-r--r-- 1 root root 219747 4月 8 20:44 xs.vim
-rw-r--r-- 1 root root 2125 4月 8 20:44 xsd.vim
-rw-r--r-- 1 root root 2166 4月 8 20:44 xslt.vim
-rw-r--r-- 1 root root 1173 4月 8 20:44 xxd.vim
-rw-r--r-- 1 root root 5551 4月 8 20:44 yacc.vim
-rw-r--r-- 1 root root 12864 4月 8 20:44 yaml.vim
-rw-r--r-- 1 root root 3277 4月 8 20:44 z8a.vim
-rw-r--r-- 1 root root 6446 4月 8 20:44 zimbu.vim
-rw-r--r-- 1 root root 30454 4月 8 20:44 zsh.vim
alaya@matrix[syntax] $ ls -l | wc -l
587
alaya@matrix[syntax] $

在這樣的平台上做開發難道不酷嗎?比如上伺服器修改文件,只要能 SSH 就可以用 SFTP,vim 同樣可以做到這個功能,並不為IDE所獨。對於鍵盤流,vim能模擬各種IDE的快捷鍵,vim 本身的操作也都可以分配快捷鍵。至於調試、自動化什麼的,更是不在話下,還可以有圖形化監控。

但是人們為什麼會有「用 IDE才是真正的黑客,vim 都是弱者才用的」這類想法呢


酷就是理由啊,為什麼男人喜歡美女?另外,我用Emacs跟酷無關,並且從來不用Emacs開發Java。

多說幾句:

沒有完美的工具,你似乎假設IDE在各個方面都優於vim/emacs, 可是沒有完美的工具,只有合適的工具。

1. 更快,emacs 比IntelliJ快, vim 比emacs快。你當然可以用IDE編輯bash profile,但是你打開IDE和用IDE打開文件的時間,我用vim已經修改好在用了。 什麼?你說不care這幾秒。我說法拉利也就比我的大媽車快了幾秒。

2. 遠程,你遠程登錄時,幾乎可以完美得使用vim,你試試IDE?其實也有公司在做IDE的遠程,但遠未成熟。你覺得很少有人遠程工作?Think again.

3. 社區,vim, emacs起來的時候, 開發intelliJ的小夥子們還沒出生吧。社區是否足夠大,是否友好是決定開源產品命運的重要指標(對,intelliJ也有開源版本)。vim, emacs龐大的社區也是它們長久不衰的原因。熟悉某個工具也是一種投資,vim/emacs 還是某IDE活得更長?我更願意賭前者。那麼在vim/emacs上的投資就更值得!

還可以列下去...


精通劍術是身為貴族的高傲特技,豈是民工火槍手可以學會的!


因為他真的很酷啊 ˉ\_(ツ)_/ˉ


哈哈哈,真是 「夏蟲不可以語於冰」 啊,來來來,IDE 少年,隨便找段 Vim 的入門視頻給你,要不你用你的 IntelliJ 或者其他 IDE 照著給大家實現一下看看?

來源1:https://vimeo.com/15443936 (無廣告,但需要翻牆)

來源2:Vim使用演示視頻3 (優酷,有廣告,不需翻牆)

不到20分鐘,很短,從頭到尾看一遍很快。

附贈《莊子-逍遙遊》節選:

蜩與學鳩笑之曰:「我決起而飛,搶榆枋而止,時則不至,而控於地而已矣,奚以之九萬里而南為?」適莽蒼者,三餐而反,腹猶果然;適百里者宿舂糧,適千里者,三月聚糧。之二蟲又何知?

小知不及大知,小年不及大年。奚以知其然也?朝菌不知晦朔,蟪蛄不知春秋,此小年也。楚之南有冥靈者,以五百歲為春,五百歲為秋。上佔有大椿者,以八千歲為春,八千歲為秋。而彭祖乃今以久特聞,眾人匹之。不亦悲平!


雖然我傾向於使用版本控制,但是這裡,我看到很多回答說伺服器上看代碼很麻煩,實在忍不住了,必須站出來科普掃(chuan)盲(jiao)!

UpSource是JetBrains公司出品的一款伺服器工具,將它部署到你家伺服器上,可以在外部連接你家伺服器然後直接在上面閱讀和修改代碼,用戶體驗和IntelliJ一樣棒,有IntelliJ IDEA般的優質代碼提示,給你熟悉的感覺。

是為那些更喜歡IDE又不得不用編輯器在伺服器上改代碼的同學們量身打造的Team Tool!

至於編輯器和IDE哪個更好我覺得這是不需要說明的,誰家Vim有重構功能?IDE不需要配置到手即用~

售價:

(針對學生有優惠,學生有學生包,制度和GitHub是一樣的,學生包全線產品免費,可惜只支持大學,我這個高中生用不了,你們這些已經參加工作了的人就自己羨慕去吧,哈哈 謝謝 ople/2934a17811cffe12c2e0623586871ef3 提醒)

注意,一分錢,一分貨哦。

好話不說二遍,我不喜歡重說三。

另外我也使用Emacs和Npp,Npp,用得很多,寫代碼寫論文寫小說寫文檔閱讀十六進位文件(寫音樂播放器的時候),都是Npp。

Emacs對我來說已經變成貪吃蛇遊戲機了。。。。


因為電腦差啊!!!我這種4k的電腦開個IDE要多長時間你知道么!你知道么!!!


搬磚的慢慢比酷吧,大頭還不都是讓做PPT和EXCEL的人賺了


推薦閱讀:

如何提高右手小拇指打字的靈活性?
linux下終端操作有什麼不好?
真的會有人用 vim 開發大的項目嗎?
如何選購 Vim 腳踏板?
vim如何有效處理制式內容?

TAG:Vim | Emacs | 集成開發環境 | IntelliJIDEA |