用 Vim 的人如何解釋現在大多數公司都要求用 IDE 這個局面?

甚至ide用的不好面試都過不能?


挺正常。

IDE 是軟體開發工業化必然的產物。所以能夠撐起一個行業的軟體開發種類,必然出現一個官方/第三方的 IDE。IDE 除了增強代碼編輯之外,通常包含構建、調試、資源和文檔管理,甚至少量的界面設計功能。這些都能顯著提升開發人員的工作效率。

對於面試考 IDE, 如果企業覺得設這個條件能夠招到充足的勝任企業工作的人,成本低於入職後再培學習,何樂而不為?

既然 IDE 那麼強大,那麼 Vim/Emacs 用戶打死不用 IDE 不是很軸嗎?不是的。因為有些人,不會等什麼都為自己準備好再去做一件事。

比如 Go 語言,很多人開始學 Go 時, 連 Vim 下的語法高亮都沒有。很多人學 Python 時,也沒有專門的 Python IDE 和 IDE 插件,但是很多人都學過來了。等這些語言火起來了,出 IDE 了,企業開始爭相使用了。這些用戶會成為企業里第一批採納該語言的人,有些更是成為了語言專家,甚至連書都寫出來了。

這些人怎麼用 Vim/Emacs 的?他們只需簡單的設置,就可以獲得對全新的語言的基本支持。比如正則匹配下Syntax, Indent, 設置一下 makeprg 等等。所以 Vim/Emacs 成了他們手裡以不變應萬變的神器。一個語言從流行到冷清,一個 IDE 從統治行業到被開發人員唾棄,在 Vim/Emacs 用戶眼裡都是浮雲。

如果你是一個會用成本思考,理解工業化本質的人,你應該理解 IDE 的優勢;如果你是熱愛新技術,能夠克服不成熟條件學習和解決問題的人,你自己應該用 Vim/Emacs。


什麼東西加了「國內」總會非常奇怪。

比如國際都用Unicode,國內用GB18030;

比如國際都用WCDMA或CDMA2000,國內用TD-SCDMA+WCDMA+CDMA2000三網混合使用;

比如國際的油價在跌,國內的油價在升;

比如國際上WinXP已經很少用,國內依然廣泛使用,而且是不能不用;

...

比如歐美國家的編程書教的是用編輯器寫程序,用工具鏈編譯,國內的學習教編程是要在VC6.0下編程,再點那個按鈕來編譯;

...

比如國際上互聯網是自由的,而國內則是...嘩.........

其實,用什麼工具不重要,在國內大多數人剛開始接觸編程時用的就是IDE,很多人用不習慣、不會用甚至不知道編輯器(VIM、Emacs),如果一個團隊需要做一個產品,那當然是首先要照顧大多數人的習慣。

首先要考慮出產品,而不是去考慮用什麼工具。工具為生產力服務!


vim用的好的人從來不會問出這種毫無根據的問題,整天ide vim吵來吵去,真是浪費生命!不就是工具嗎,losers


用vim的人水平高低差距很大……


為什麼我要解釋「為什麼我和別人不一樣....」


國外的企業好多還真不用VIM/Emacs之類的工具作為核心工具。我使用emacs三年了,但是公司開發還是要Visual Studio和Eclipse,C++ / .Net 和java,這些IDE工具帶了很多插件。但是公司一般才不管你用什麼開發工具,有編碼規範,你自己能敲出來合格的文本,誰管你。另外用IDE可以方便的調試,畢竟用vim或則emacs調試還是不方便,多種語言混合調試你不用eclipse和visual studio一起聯調還真不好弄。

我的Eclipse中裝了emacs+插件,感覺上和emacs差不多了,並且配合好多eclipse的代碼重構,快速搭建,我個人感覺要比單純使用emacs快多了,是的你會跟我說你emacs能配置和eclipse一樣強大,但是那要花多少時間呀,畢竟程序員整天停留在寫elisp代碼上。至於C++和C#,我覺得Visual studio配合Visual Assistant X 插件無疑是非常高效的,並且可以在visual studio配置基本的emacs快捷鍵。

至於代碼和工程文件難以管控,我們有自己sandbox,加上visual studio的工程文件是自動生成的,CMake或者自己寫腳本都不難。用IDE的好處是不用折騰配置你的vim和emacs,尤其在window下用emacs也是噩夢。

標題中要修改一下,為啥國外企業也要用IDE。


難道只做詞法分析還比做了語法、語義分析更高級了?

因為有些人,不會等什麼都為自己準備好再去做一件事。……這些人怎麼用 Vim/Emacs 的?他們只需簡單的設置,就可以獲得對全新的語言的基本支持。比如正則匹配下Syntax, Indent, 設置一下 makeprg 等等。

為啥不自己去寫 IDE 插件呢?說到底還是水平不夠唄。


如果是做演算法之類的科研型團隊,我想肯定不會來限制你,隨便用什麼都行。如果是做應用軟體的團隊,就跟開發環境有關了,python,ruby,js開發的話,vim應該還算靠譜,但如果你要用vim去寫java,c#,我個人表示,您還是去別處「鍛煉」吧。


我不用IDE,我的同事也不用IDE,偶爾用用IDE總是擔心代碼變得不可控了,所以最終沒學會IDE。俺是在國內一家公司


會用Vim的人可能不少,但是會到什麼程度就很不好說了,而能夠熟練使用Vim做項目開發的人應該是比較稀缺的;國內的公司肯定希望能有這樣的人才出現,但是大多數情況是大家能熟練使用IDE,而公司長期形成的開發環境也是各種IDE,所以總結來說就是為了效率和效益IDE首選!


用鐵鎚是能做質量特別好的刀劍,而且已經被驗證了1千年了。但是人類這個種族要說有什麼能耐的話,就是再好的傳統工藝都會被後代毫不留情地用全新的思路顛覆掉


凡是沒有絕對。

我的上個東家,是做ERP開發的,亞洲最大的,產品基於java平台。

開發了一整套eclipse的插件來管理項目,解決庫的導入、依賴、編譯、發布,以及資料庫模型設計、應用模型設計、元數據編程。涵蓋了整個項目的生命周期,是個龐大的開發管理體系,而不僅僅是個IDE了。

進了這家公司的開發部,你不用定製的IDE你就沒法幹活。

所以,凡事視情況而定。


大規模集團軍作戰突擊指定時間內要完成的項目,有IDE當然比純VIM好的多,IDE可以做的事情太多了,點聯想、XUNIT、語法檢查、打包,可以說開發起來非常高效,用vim更高效的人,太少了。

這麼說吧,看java語法兩三天,給你個eclipse,你寫不出來代碼?智商有問題。。


用高端IDE的人如何解釋現在國內的C/C++語言教科書都用VC6.0環境?


我習慣了用emacs開發C++和Java。不習慣用Eclipse。

公司要求用IDE,大抵是從效率和一致性考慮吧。如果你用vim/emacs一樣能夠高效且符合編碼規範地開發,產出的代碼讓人無法分辨是用IDE還是vim寫的,你一樣可以私底下用自己習慣的編輯器啊。

順便吐槽一下,IDE其實並不一定能夠保證效率和一致性。我就常見同事用Eclipse寫出的代碼風格不統一,文件編碼不一致等等。用IDE甚至給IDE寫各種插件,無非是公司無法找到一個更容易的法子,讓低水平開發者快速完成開發任務的權宜之舉。如果大家對編譯器、構建工具、調試工具等瞭然於胸,用什麼工具開發真的是無所謂的。


如果是java的話, vim 真的不能和 eclipse 比吧


感覺ide看代碼的結構更直觀一點,而且有的時候,查看原生代碼會更方便。然而,依然覺得vim是最強大的,各種插件,還有各種debug的工具,灰常省時間,對於程序員來說vim會覺得更6666


用了四年vim的路過。工具各自有各自的好處。把眼光一直局限在工具的使用上沒意義。我都是vs, source. insight. vim 混合著用的。大家都用的好好的沒什麼靠這個秀不出什麼逼格

ide裡頭也可以配置vim plugin.vim裡頭也可以安裝插件配置ide有的功能


咋不說主流IDE都有個Vim模式…


你們不覺得這個問題很奇怪嗎?為什麼要讓用 Vim 的人解釋?

題主提問的預設就帶有了「用 Vim 的人就一定嫌棄 IDE 的想法了吧」,故意引戰?


推薦閱讀:

哪些是 Emacs 可以做而 Vim 做不到的?
如何使用Vim為每一行自動編號?
如何使用 Vim 做前端開發?

TAG:Vim | 集成開發環境 |