web-dev-qa-db-fra.com

Vim autocomplete pour Python

J'essaie d'incorporer une fonctionnalité de complétion automatique dans Vim . J'ai utilisé l'omnification complète de Vim ainsi que Pydiction . Mais dans les deux cas, ce message apparaît:

Omni achèvement (^ O ^ N ^ P) Motif non trouvé

J'ai essayé Vim's Omnicompletion avec Python ne fonctionne tout simplement pas. Mais cela n'aide pas. Y at-il un travail autour? 

47
tallandroid

Essayez Jedi ! Il y a un plugin Vim à https://github.com/davidhalter/jedi-vim .

Cela fonctionne beaucoup mieux que tout le reste pour Python dans Vim. Il prend même en charge le changement de nom, goto, etc. Le mieux, c'est qu'il essaie vraiment de comprendre votre code (décorateurs, générateurs, etc. Il suffit de regarder la liste des fonctionnalités).

52
Dave Halter

Cela peut être une bonne option si vous voulez une complétion de python ainsi que d’autres langages. https://github.com/Valloric/YouCompleteMe

La complétion en python est basée sur Jedi comme Jedi-vim.

12
Xuan

J'ai essayé pydiction (n'a pas fonctionné pour moi) et la complétude normale (trop limitée). J'ai examiné le Jedi comme suggéré, mais je l'ai trouvé trop complexe à mettre en place. J'ai trouvé python-mode , qui a finalement répondu à mes besoins. Merci @klen .

6
Torsten Engelbrecht

Autant que je sache, il existe trois options, chacune avec ses inconvénients:

  1. youcompleteme : peu convivial à installer, mais fonctionne bien si vous parvenez à le faire fonctionner. Cependant, python3 est non pris en charge
  2. jedi-vim : nom génial, mais casse votre historique d'annulation
  3. (python-mode } _ effectue beaucoup plus la saisie semi-automatique: pliage, vérification de la syntaxe, mise en surbrillance. Personnellement, je préfère les scripts qui font 1 chose bien, car ils sont plus faciles à gérer (et à remplacer). Contrairement aux deux autres options, il utilise corde au lieu de jedi pour l'auto-complétion.

Python 3 et l'historique des annulations ( gundo! ) Sont indispensables pour moi, les options 1 et 2 sont donc supprimées. 

6
Rafael Barbosa

À ce stade, vous complétez également Python3.

2
MrLeeh

Je me suis heurté à cela sur mon Mac en utilisant MacPorts vim avec + python. Le problème était que vim de MacPorts ne liera que python 2.5 avec + python, alors que mes extensions étaient installées sous python 2.7. L'installation des extensions à l'aide de pip-2.5 a résolu le problème.

0
Devon Bleak