2012-03-19 11 views
10

Sto lavorando su un grande progetto python usando vim con tagexplorer, pythoncomplete e ctags. Le funzionalità di navigazione del codice e di completamento del codice basate su tag non funzionano nel modo in cui dovrebbero sfortunatamente, poiché ctags non associa le istanze ai tipi.Come risolvere i problemi di esplorazione del codice Python e completamento del codice in vim?

scenari ipotetici:

  • Completamento automatico: vim non saranno completamento automatico metodo on() in myCar.ignition().on() perchè ctags non sa che ignition() rendimenti TypeIgnition.
  • Navigazione codice: vim non sfoglia in TypeCar quando faccio clic su myCar ma invece mi presenta con più corrispondenze di definizione, corrispondenze errate o nessuna corrispondenza perché ctags non esegue il backtrack e lega le istanze ai tipi.

Il problema sembra derivare dal fatto che Python sia un linguaggio tipizzato dinamicamente. Né lo scenario presenterebbe una sfida altrimenti. Esiste un'alternativa efficace alla codifica e al completamento del codice basata su tag e un plug-in IDE o Vim che lo implementa correttamente?

Nota: Si prega di votare "riaprire". Le soluzioni a questo problema sono preziose per la comunità. La domanda è stata formulata in origine in modo molto vago, non è più così.

+5

's/digitazione debole/digitazione dinamica /' – delnan

+0

Ho trovato [spyder] (http://code.google.com/p/spyderlib/) su SO circa una settimana fa. Potresti dare un'occhiata a come fanno alcune delle loro cose. – John

+1

Non considero questo un grosso problema. A volte uso [ropemacs] (http://rope.sourceforge.net/ropemacs.html) per l'espansione automatica, che funziona bene. Di solito, però, digito semplicemente i nomi degli attributi, e non credo che interferisca con la produttività. Se lo facessi, farei sicuramente un uso maggiore dei ropemacs. –

risposta

0

IDE commerciali per Python come wing (www.wingware.com) e pycharm (www.jetbrains.com/pycharm) sono migliori per risolvere la maggior parte dei problemi di completamento del codice. Certo, non sono liberi però. Io stesso, quando uso eclipse con il plugin pydev non è stato in grado di ottenere risultati soddisfacenti.

+0

shucks, stavo per provare PyDev –

+1

Ti incoraggio a provarlo. Il mio problema con Pydev è stato quando ho importato la libreria di terze parti. Ci sono molti bug ancora da affrontare in PyDev, ma è sicuramente migliore dell'IDE con cui viene Python. –

+1

PyDev funziona abbastanza bene. Lontano da perfetto, ma dannatamente bene. E ciò che si perde nel completamento del codice è in qualche modo compensato dalla possibilità di accedere al codice in qualsiasi momento in fase di esecuzione e di eseguire codice arbitrario nel frame attivo. –

Problemi correlati