2011-08-21 13 views
40

Sto tentando di incorporare una funzionalità di completamento automatico in Vim. Ho usato l'omnicompletion di Vim così come lo Pydiction. Ma in entrambi i casi questo messaggio appare:Compilazione automatica di Vim per Python

Omni completamento (^ O^N^P) del modello non trovato

ho cercato Vim's Omnicompletion with Python just doesn't work. Ma questo non sta aiutando. C'è una soluzione?

+2

hai visto questo link? http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/ – Efazati

+1

Il file è stato rilevato come file python? Aprilo ed esegui ': echo & ft'. Se questo non restituisce "python", prova ad aggiungere "plugin filetype on" al tuo vimrc e prova di nuovo tutto questo. –

risposta

45

Prova Jedi! C'è un plugin Vim a https://github.com/davidhalter/jedi-vim.

Funziona molto meglio di qualsiasi altra cosa per Python in Vim. Ha anche il supporto per la ridenominazione, goto, ecc. La parte migliore è probabilmente che cerca davvero di capire il codice (decoratori, generatori, ecc. Basta dare un'occhiata all'elenco delle caratteristiche).

+2

Ho provato questo, ma l'unica cosa che ottengo è centinaia di errori. – pfnuesel

+1

Ho bisogno di conoscere gli errori e ': ver' allora. Questo può accadere se non hai vim con + python installato (ad esempio certe edizioni di windows vim). –

+0

Errore: Vim: segnale mortale catturato SEGV Vim: terminato. Errore di segmentazione – pfnuesel

6

Ho provato pydiction (non ha funzionato per me) e la normale omnicompletion (troppo limitata). Ho esaminato Jedi come suggerito, ma l'ho trovato troppo complesso da configurare. Ho trovato python-mode, che alla fine ha soddisfatto le mie esigenze. Grazie @klen.

+0

Questo è quello che ha funzionato per me. Gli altri strumenti erano troppo complicati da installare. – max

0

Mi sono imbattuto in questo sul mio Mac utilizzando il MacPorts vim con + python. Il problema è che il MacPorts vim si collegherà solo a python 2.5 con + python, mentre le mie estensioni sono state installate sotto python 2.7. L'installazione delle estensioni usando pip-2.5 l'ha risolto.

4

per quanto ne so ci sono tre opzioni, ognuna con i suoi svantaggi:

  1. youcompleteme: ostili da installare, ma funziona bello se si riesce a farlo funzionare. Tuttavia python3 è non supportato.
  2. jedi-vim: nome più bello, ma si rompe il undo history.
  3. python-mode esegue molto più l'autocomplete: piegatura, controllo della sintassi, evidenziazione. Personalmente preferisco gli script che fanno bene 1 cosa, in quanto sono più facili da gestire (e sostituire). A differenza delle altre due opzioni, utilizza rope invece di jedi per il completamento automatico.

Python 3 e cronologia di annullamento (gundo!) sono un must per me, quindi le opzioni 1 e 2 sono fuori.

+0

Grazie per aver sottolineato gli svantaggi, questo ha reso la scelta molto più semplice, dal momento che condivido l'opinione su Python 3 e annulla. – Zelphir

+0

Sembra che la corda non supporti Python 3 (https://github.com/python-rope/rope/issues/57)? Come usare la funzione di autocompletamento con python-mode e corda? Grazie. – Chad

2

In questo momento youcompleteme esegue anche Python3.

Problemi correlati