怪我咯2017-05-16 16:37:07
這個問題你去問100 個vimer(我指的是真正懂vim 的玩家,不是普通使用者),估計99 個都會告訴你:「可以,但並不適合。」(這是普適的答案,你應該相信)
但總會有那麼一個百里挑一的 genius 會做出 99% 的人做不出的事情來,比如說這位:http://www.lucianofiandesio.c...
那麼他做到的事情能完美取代 Intellij IDEA 或 eclipse 嗎?答案是:不能--不過這要看對誰而言,對少數人來說,他們並不依賴那些IDE 有的,但是vim 沒有並且很難去實現的東西(或者說實現的代價有點不值得) ,所以他們依然可以用vim 寫Java 並且寫得比很多人都快都好。話說回來,IDE 用成精的人也不會比vim 慢,更不要說現在IDE 都可以實現大部分的vim 編輯模式——但vim 有一些好處是IDE 永遠也無法企及的,輕、快、伺服器幾乎標配、遠端連線立即可用…你精通IDE 也許只能做好一件事,你精通vim 鬼知道你能做什麼!
那麼問題來了:你是這類人嗎?以上答案 Emacs 基本上適用,在改造無限接近 IDE 這件事情上,Emacs 還能做得更極致一些。
漂亮男人2017-05-16 16:37:07
曾經有一年時間做 Java Swing 開發,嘗試過 2 個月時間脫離 IDE 轉投 VIM 。
其實答案和樓上一樣,也跟大部分人一樣:可以,但並不適合。
該折騰的插件,都折騰了,NerdTree、AutoComplete、Supertab、Snippets……
或許是本人對VIM 的理解還不夠深入,也或許是各種其它原因,但還是有以下幾個方面不方便:
1. 文件切換不方便:雖然有NerdTree,但在各種文件之間切換仍然不方便。不過可以用滑鼠,但是用滑鼠的話,還要 VIM 幹嘛。
2. 程式碼提示不方便:Java 的第三方 Jar 包出了名的多,雖然手動更改了 AutoComplete 程式碼,能讓其提示 Jar 中的函數,但經常抽風提示不出來。即使提示,也沒有方法註解、方法簽名(無論哪一款IDE 都會有方法註解和方法簽名的吧),熟悉的方法還好,如果遇到第一次用的Jar ,只能乖乖查官方API 了。
3. import 需要手動:用慣了 Eclipse 的一定知道,Ctrl + O,IDE 能自動幫助導入需要的包,如果有多個相同名稱的 Java 類,還會提示。這一方面 VIM 暫時還沒有這方面的插件(當然,如果有高人在,相信一定能開發出這樣一款插件)。每次寫完程式碼,編譯時,都會出現大堆大堆的提示沒有 import 。然後手動寫 import 也是非常耗時的事情。
4. 新建檔案不方便:IDE 中,會依照所選的新建檔案不同,依照不同的模版產生不同的檔案。但在 VIM 中,新建文件就是一空白文字文件,所有程式碼都要自己填寫完整。 J2SE 項目還好,如果是 Web 項目,各種痛苦都會等著你。
5. 覆蓋方法不方便:IDE 能夠提示哪些方法可以覆蓋,VIM 只能憑經驗或查詢 API 了。
其實還有很多問題,只有折騰過的才知道。後來還是因為效率實在低下,又回到 IDE,不過好在現在的 IDE 都有 VIM 插件。
在真正開始 VIM 工作之前,本人可是花了 2 週時間來調試和折騰 VIM 插件。
只能說,其中的坑實在很多,慎入。
过去多啦不再A梦2017-05-16 16:37:07
@TroyLiu 你說的這些問題都不是問題,在我的配置中,這些問題完全可以解決,而且解決方案比IDE裡面效果要好;
https://github.com/wsdjeg/Dot...
推薦一篇關於使用vim開發java程式的文章:
https://spacevim.org/2017/02/...