2011-08-31 47 views
9

我一直在嘗試爲Ruby代碼設置Vim自動完成,並沒有成功。我的意思是「工作」,但我希望有更好的插件或配置可用。有沒有什麼辦法可以在Vim中爲Ruby建立良好的自動完成?

我已經設置了rubycomplete插件,它是做一個體面的工作,但沒有什麼比喜歡的RubyMine的IDE。一旦我安裝它,只是一股清新的空氣,看看我錯過了什麼。它非常瞭解語法和上下文,通常只顯示相關的可能選項。

也許我只是沒有正確設置的東西。找到教程,博客帖子和關於如何解決這個問題的好文檔(特別是最新的文檔)是不可能的。有時你會發現有不同的工具和設置,並且沒有太多解釋如何去做。

這種類型的東西是否有社區標準?什麼是實現這一目標的最佳工具?任何好的教程,來源,如何去解決這個問題的線索?

我不斷聽到人們說他們更喜歡Vim而不是像Rubymine這樣的IDE,並且他們可以通過正確的插件配置在很多方面實現相同的行爲,但是我的經驗並不一樣。我真的想繼續使用Vim,因爲它更輕,我喜歡編輯,但生產力是最重要的,我浪費了太多的時間閱讀3到4年前的博客文章,瞭解如何設置它。

+0

有很少的IDE與Ruby自動完成..主要是因爲Ruby是如此的動態以至於很難做到。我見過的Ruby自動完成支持的唯一IDE就是KomodoEdit,它通常沒有用 – Earlz

+0

我在您的問題中看不到需求列表。你想要vim的全方位做什麼,它不?我根本沒有進入Ruby,所以我認爲我不能真正幫助你,但是你能否讓你的問題更精確? – romainl

+0

類似的問題在這裏:http://stackoverflow.com/q/4824507/513198 –

回答

1

對於需要語言的精細理解大多數操作,我通常發現Vim的缺乏相比,專用的IDE。例如,您不能使用範圍自動重構代碼(在類Monkey中將foo()更改爲bar(),而不是在整個項目中的類Ape中)。

同樣,自動完成並不總是聰明。我認爲對於C/C++來說,由於像clang_complete這樣的工具,情況是可以忍受的。但對於Java或不太流行的語言,我覺得完成腳本不符合任務。所以你最終花費了大量的時間修改腳本。問題在於,爲了獲得良好的自動完成,您需要充分利用解釋器或編譯器的全部功能,顯然這並不容易。

我仍然繼續使用Vim,主要是因爲我更有效地編輯大量代碼,但是當情況需要時,我也使用Vim旁邊的IDE。

我不知道紅寶石完整的具體情況,但我不知道你會得到一個肯定的回答。

我的夢想是每個IDE都有一個強制性的完整的 vi輸入模式。

+2

這就是爲什麼我更喜歡vim仿真,比如Visual Studio中的ViEmu。你得到兩全其美。 – Earlz

+0

@Earlz:我在eclipse中使用Viper,它很好,但它也是一個完整的實現。 –

2

您可以在插入模式下點擊Ctrl + x,然後點擊Ctrl + o(omni)獲取Ruby方法列表。如果您已經輸入幾個字符e.g ea你會得到eacheach_with_index

在我vimfiles有標籤映射到緩衝用另一個詞來完成。

它都不如一個IDE e.g的Netbeans或RubyMine的,但它工作得很好。

Ctrl + x之後還有其他的組合,您可以使用完整的使用單詞,行等等。

還有eclimd使用無頭Eclipse來提供自動完成,但我從來沒有設法解決如何讓它工作。安裝並連接Vim到Eclipse很容易,但在此之後...

Snipmate可能是替代品,ea<tab>擴展到each { |element| }

相關問題