2012-03-19 12 views
10

pracuję nad dużym projektem Pythona przy użyciu vim z tagexplorer, pythoncomplete i ctags. Oparte na tagach przeglądanie kodu i funkcje do uzupełniania kodu nie działają tak, jak powinny, ponieważ ctags nie wiąże instancji z typami.Jak rozwiązywać problemy z przeglądaniem kodu Pythona i kodowaniem w vimie?

hipotetyczne scenariusze:

  • Auto Complete: vim nie autouzupełnianie metoda on() w myCar.ignition().on() ponieważ ctags nie wie, że ignition() powraca TypeIgnition.
  • Przeglądanie kodu: vim nie przejdzie do TypeCar po kliknięciu na myCar, ale zamiast tego przedstawia mi dopasowania z wieloma definicjami, niepoprawne dopasowania lub brak dopasowań, ponieważ ctags nie cofa i nie przywiązuje instancji do typów.

Problem wydaje się wynikać z tego, że python jest językiem o dynamicznym typie. Żaden z tych scenariuszy nie stanowiłby innego wyzwania. Czy istnieje skuteczna alternatywa dla przeglądania kodu opartego na znacznikach i uzupełniania kodu oraz wtyczki IDE lub vim, które ją dobrze implementują?

Uwaga: Proszę głosować "re-open". Rozwiązania tego problemu są cenne dla społeczności. Pytanie pierwotnie sformułowano bardzo niejasno, to już nie jest tak.

+5

'S/słaby typowania dynamicznego/typowania/' – delnan

+0

że stwierdzone [spyder] (http://code.google.com/p/spyderlib/) na tak około tygodnia. Może przyjrzeć się, jak robią niektóre z ich rzeczy. – John

+1

Nie uważam tego za poważny problem. Czasami używam [ropemacs] (http://rope.sourceforge.net/ropemacs.html) do automatycznego rozwijania, co działa dobrze. Zwykle po prostu wpisuję nazwy atrybutów i nie uważam, że to przeszkadza w wydajności. Gdybym tak zrobił, z pewnością skorzystałbym więcej z ropemaców. –

Odpowiedz

0

IDE komercyjnych pytona jak skrzydła (www.wingware.com) i pycharm (www.jetbrains.com/pycharm) są lepiej rozwiązać większość problemów Podpowiedzi. Oczywiście nie są one jednak darmowe. Ja sam, kiedy użycie eclipse z pluginem pydev nie było w stanie uzyskać zadowalających wyników.

+0

shucks, miałem zamiar wypróbować PyDev –

+1

Zachęcam cię do wypróbowania. Mój problem z Pydevem był, gdy importowałem bibliotekę firm trzecich. W PyDevie jest jeszcze sporo błędów, ale jest zdecydowanie lepszy niż IDE, z którego pochodzi Python. –

+1

PyDev działa całkiem dobrze. Daleko od ideału, ale całkiem cholernie dobrze. A to, co tracisz w zakończeniu kodu, jest w pewnym stopniu zrekompensowane możliwością włamania się do twojego kodu w dowolnym momencie w czasie wykonywania i wykonania dowolnego kodu w aktywnej ramce. –