emacs - 用vim來寫java可行么?
問題描述
體驗是否比eclipse差很多呢?用emacs寫java體驗也不會好么:(
問題解答
回答1:這個問題你去問 100 個 vimer(我指的是真正懂 vim 的玩家,不是普通使用者),估計 99 個都會告訴你:“可以,但并不適合。”(這是普適的答案,你應該相信)
但總會有那么一個百里挑一的 genius 會做出 99% 的人做不出的事情來,比如說這位:http://www.lucianofiandesio.c...
那么他做到的事情能完美代替 Intellij IDEA 或 eclipse 嗎?答案是:不能——不過這要看對誰而言,對少數(shù)人來說,他們并不依賴那些 IDE 有的,但是 vim 沒有并且很難去實現(xiàn)的東西(或者說實現(xiàn)的代價有點不值得),所以他們依然可以用 vim 寫 Java 并且寫得比很多人都快都好。話說回來,IDE 用成精的人也不會比 vim 慢,更不要說現(xiàn)在 IDE 都可以實現(xiàn)大部分的 vim 編輯模式——但 vim 有一些好處是 IDE 永遠也無法企及的,輕、快、服務器幾乎標配、遠程連接立即可用……你精通 IDE 也許只能干好一件事,你精通 vim 鬼知道你都能干些什么!
那么問題來了:你是這類人嗎?以上答案 Emacs 基本適用,在改造無限接近 IDE 這件事情上,Emacs 還能做得更極致一些。
回答2:曾經(jīng)有一年時間做 Java Swing 開發(fā),嘗試過 2 個月時間脫離 IDE 轉投 VIM 。其實答案和樓上一樣,也和大部分人一樣:可以,但并不適合。該折騰的插件,都折騰了,NerdTree、AutoComplete、Supertab、Snippets……或許是本人對 VIM 的理解還不夠深入,也或許是各種其它原因,但還是有以下幾個方面不方便:1. 文件切換不方便:雖然有 NerdTree,但在各種文件之間切換仍然不方便。不過可以用鼠標,但是用鼠標的話,還要 VIM 干嘛。2. 代碼提示不方便:Java 的第三方 Jar 包出了名的多,雖然手動更改了 AutoComplete 代碼,能讓其提示 Jar 中的函數(shù),但經(jīng)常抽風提示不出來。即使提示,也沒有方法注釋、方法簽名(無論哪一款 IDE 都會有方法注釋和方法簽名的吧),熟悉的方法還好,如果遇到第一次用的 Jar ,只能乖乖查官方 API 了。3. import 需要手動:用慣了 Eclipse 的一定知道,Ctrl + O,IDE 能自動幫助導入需要的包,如果有多個相同名稱的 Java 類,還會提示。這一方面 VIM 暫時還沒有這方面的插件(當然,如果有高人在,相信一定能開發(fā)出這樣一款插件)。每次寫完代碼,編譯時,都會出現(xiàn)大堆大堆的提示沒有 import 。然后手動寫 import 也是非常耗時的事情。4. 新建文件不方便:IDE 中,會根據(jù)選擇的新建文件不同,根據(jù)不同的模版生成不同的文件。但是在 VIM 中,新建文件就是一空白文本文件,所有代碼都要自己填寫完整。 J2SE 項目還好,如果是 Web 項目,各種痛苦會等著你。5. 覆蓋方法不方便:IDE 能夠提示哪些方法可以覆蓋,VIM 只能憑經(jīng)驗或者查詢 API 了。
其實還有很多問題,只有折騰過的才知道。后來還是因為效率實在低下,又回到 IDE,不過好在現(xiàn)在的 IDE 都有 VIM 插件。在真正開始 VIM 工作之前,本人可是花了 2 周時間來調試和折騰 VIM 插件。只能說,其中的坑實在很多,慎入。
回答3:@TroyLiu 你說的這些問題都不是問題,在我的配置中,這些問題完全可以解決,而且解決方案比IDE里面效果要好;https://github.com/wsdjeg/Dot...
推薦一篇關于使用vim開發(fā)java程序的文章:
https://spacevim.org/2017/02/...
回答4:別折騰了,推薦eclipse和JetBrains。
回答5:可以,前提是Vunble那套東西你要玩的轉
利益相關:重度vim使用者
回答6:可以,光寫代碼完全不成問題。只要你牛B到不需要調試功能。在牛B的VIM配置,能搞出IDE的調試環(huán)境嗎?
相關文章:
1. node.js - nodejs debug問題2. docker-machine添加一個已有的docker主機問題3. golang - 用IDE看docker源碼時的小問題4. docker綁定了nginx端口 外部訪問不到5. docker - 如何修改運行中容器的配置6. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?7. debian - docker依賴的aufs-tools源碼哪里可以找到啊?8. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個是怎么回事????9. docker網(wǎng)絡端口映射,沒有方便點的操作方法么?10. docker-compose中volumes的問題
