2011-08-31 7 views
9

Próbowałem skonfigurować autouzupełnianie Vima dla kodu Ruby i nie udało się. Mam na myśli rzeczy "działa", ale spodziewałbym się, że lepsza wtyczka lub konfiguracja będzie dostępna.Czy jest jakiś sposób na ustawienie dobrego autouzupełniania dla Rubiego w Vimie?

Wcześniej skonfigurować wtyczkę rubycomplete i robi dobrej pracy, ale to nic w porównaniu do IDE jak rubymine. Po zainstalowaniu zobaczyłem, że brakuje mi świeżego powietrza. Jest świadomy składni, kontekstu i zwykle pokazuje tylko odpowiednie możliwe opcje.

Może po prostu nie ustawiłem poprawnie. Nie można znaleźć samouczka, posta na blogu, dobrej dokumentacji na temat tego, jak to zrobić (zwłaszcza tego, który jest aktualny). Czasami po prostu okazuje się, że istnieją różne narzędzia i konfiguracje i niewiele wyjaśnia, jak się do tego zabrać.

Czy istnieje standard wspólnotowy dla tego typu rzeczy? Jakie są najlepsze narzędzia, aby to osiągnąć? Każdy dobry tutorial, źródło, wskazówki, jak się do tego zabrać?

Ciągle słyszę, jak ludzie mówią, że wolą Vima od IDE, takiego jak Rubymine, i że mogą osiągnąć podobne zachowanie pod wieloma względami przy prawidłowej konfiguracji wtyczek, ale moje doświadczenie nie było takie samo. Naprawdę chcę nadal używać Vima, ponieważ jest lżejszy i uwielbiam edytor, ale najważniejsza jest wydajność i marnuję zbyt dużo czasu czytając posty na blogu sprzed 3 i 4 lat, jak to ustawić.

+0

Istnieje bardzo niewiele IDE z autouzupełnianiem Ruby, głównie dlatego, że Ruby jest tak dynamiczny, że trudno to zrobić. Jedynym IDE, które widziałem z automatyczną obsługą Ruby, było KomodoEdit i zwykle nie było przydatne – Earlz

+0

Nie widzę listy wymagań w twoim pytaniu. Czego chcesz, aby to wszystko było możliwe? Nie jestem w ogóle w Ruby, więc nie sądzę, żebym mógł naprawdę pomóc, ale czy mógłbyś bardziej precyzyjnie zadać pytanie? – romainl

+0

Podobne pytanie tutaj: http://stackoverflow.com/q/4824507/513198 –

Odpowiedz

1

Dla większości operacji, gdzie wymagana jest w porządku rozumienie języka, ja generalnie uważają, że Vim brakuje w porównaniu do dedykowanego IDE.

Na przykład, nie można automatycznie byłaby kodu przy użyciu zakresu (zmieniającą Foo() na pasku() w klasie Monkey ale nie w klasie Ape w całym projekcie).

Podobnie autouzupełnianie nie zawsze jest inteligentne. Myślę, że dla C/C++ sytuacja jest znośna dzięki narzędziom takim jak clang_complete. Ale w przypadku języka Java lub mniej popularnego języka miałem wrażenie, że skrypt zakończenia nie jest odpowiedni do tego zadania. Więc spędzasz mnóstwo czasu na majsterkowaniu przy pomocy skryptów. Problem polega na tym, że do dobrego autouzupełniania trzeba wykorzystać pełną moc interpretera lub kompilatora i najwyraźniej nie jest to łatwe.

Wciąż trzymam za pomocą Vima przede wszystkim dlatego, że jestem bardziej wydajny edytować fragment kodu, ale gdy sytuacja tego wymaga, ja również używać IDE obok Vima.

nie wiem specyficzną sytuację Ruby kompletne, ale nie jestem pewien, dostaniesz pozytywną odpowiedź.

Moim marzeniem jest, że każdy IDE miał obowiązkowy pełny tryb wprowadzania danych vi.

+2

Dlatego preferuję emulację vim, na przykład ViEmu w Visual Studio. Masz najlepsze z obu światów. – Earlz

+0

@Ellz: Używam Vipera w czasie zaćmienia, jest to miłe, ale jest też zbytnią implementacją. –

2

Możesz, w trybie wstawiania, nacisnąć Ctrl + x, a następnie Ctrl + o (omni), aby uzyskać listę metod Rubiego. Jeśli już wpisany kilka znaków np ea dostaniesz each, each_with_index itp

w moim vimfiles mieć Tab odwzorowane wypełnić używając innego słowa w buforze.

Nie jest tak dobry jak IDE, np. Netbeans lub Rubymine, ale działa wystarczająco dobrze.

Po naciśnięciu Ctrl + x istnieją inne kombinacje można wykorzystać kompletne używając słowa, linie itd.

Istnieje również eclimd, który korzysta z bezgłowego Eclipse, aby zapewnić auto kompletne, ale nigdy nie udało mi się wypracować, jak go uruchomić. Instalacja i podłączenie Vima do Eclipse jest łatwa, ale po tym ...

Snipmate może być alternatywą, ea<tab> z rozszerzeniem do each { |element| }.

Powiązane problemy