「配成准IDE的vim」和「裝了vim插件的真IDE」哪個效率更高?


一般而言,這個問題沒有可比性。vim 的優勢就是文本模式可用,遠程可用。所以在大多數適用 vim 的場合,你是根本不可能使用 IDE 的。你唯一的選擇就是 vim,IDE is not an option。

反過來說,在一些適用 IDE 的場合,vim 也不是太適用,尤其是對於一些特定的,對 IDE 依賴非常強的編程語言來說。

你沒找到具體的使用場景,盲目去比較工具,這沒有意義。


能用IDE且無需頻繁啟動IDE的場合,IDE效率高。

以我目前的工作環境為例,intellij 64位版給分配個2G內存,加-server啟動參數,常年除了升級強制重啟外不關機,不關IDE, 沒有任何問題。

IDE跟純vim相比最直接的好處是支持重構。不要以為IDE的重構功能只有在維護時才有用。其實在首次編寫時也很方便。

比如你要寫 Person person = new Person()。 用純vim的話即使有ctag支持,也要按兩次代碼補全(類名),輸入一次變數名稱,外加一個賦值符號(=)。在intellij里,輸入new Person()後按ctrl+shift+v(抽取變數),IDE就自動給你補全了,連變數命都給你默認生成好了。

Intellij 13.1開始引入的後綴補全則把這種編程方式進一步常規化。你可以試試輸入new Person().var然後按tab,或者persons.for然後按tab ( persons是一個Collection, 例如List )

再比如,創建一些短小的內部方法時,可以在調用位置直接寫實現,然後選中實現代碼再抽取方法。IDE會幫你生成參數表,返回類型,和調用代碼。你只需要輸入個方法名稱就行了。

在無法使用IDE或經常需要臨時啟動編輯器的場合,vim優勝。這個就不用說了。

========

使用IDE加Vim插件的最大問題是無法完全模擬vim。例如新版Intellij里的多游標支持就與vim插件的塊選擇(ctrl-v)衝突。

但對於在調用外部編輯器時能傳遞游標位置的IDE這完全不是問題。 以Intellij為例,只要把gvim設為外部編輯器,傳入參數

$FilePath$ "+norm $LineNumber$G0$ColumnNumber$lh"

同時設定關閉時自動同步工作文件。再為這個外部編輯器項目設定一個熱鍵。這樣當你在Intellij中想使用原生vim特性時,按熱鍵就能打開vim,且游標就在當前位置。修改好後:wq,IDE中的工作文件就會自動同步。合作得十分愉快。


大部分時候,我們的水平還沒有到因為工具造成明顯差距的層次上。


不裝vim插件的IDE


關於「大部分時候,我們的水平還沒有到因為工具造成明顯差距的層次上」。

我們開發的效率,更加受到開發工具與已形成的開發習慣造成的影響。一個熟悉 IDE 的人很可能不習慣 Vim 反之亦然,儘管它們在各自熟悉的開發環境下,開發效率可能一樣高。

如果你熟悉 Vim 的操作方式和 UI,卻希望一些額外功能,那你可以用「配成准 IDE 的 Vim」,但是如果你更習慣 IDE 的 UI 和操作,或者需要特定 IDE 的功能,只是覺得部分操作 Vim 更加高效,那你可以用裝了 Vim 插件的 IDE. 當然,如果你沒有 Vim 操作方式的需求,當然不裝 Vim 插件的 IDE 最好。

此外。

目前 Vim 作為一個文本編輯器,對所用編程語言的理解程度,包括查看定義的準確性,和 IntelliSense 等等,遠遠無法和為該語言優化的 IDE 相提並論。即使配置的再像 IDE。


當然是後者


IDE效率高 不然 花那麼多時間開發海量的IDE做什麼


你熟悉哪個哪個就效率高


何必這麼繞呢,工具最終都是為你服務的,不必太糾結(逃


vim遠程用,IDE寫代碼,即使是腳本,覺得IDE也是強


沒穿戰衣的鋼鐵俠依舊鋼鐵俠

裝ios主題的小米也依舊是刁絲


推薦閱讀:

用 Vim 的人如何解釋現在大多數公司都要求用 IDE 這個局面?
Vim 比起 IDE 的優勢是什麼?
哪些是 Emacs 可以做而 Vim 做不到的?
如何使用Vim為每一行自動編號?

TAG:編程 | Vim | MicrosoftVisualStudio |