it-swarm.com.de

Vim Autocomplete für Python

Ich versuche, eine Autovervollständigung in Vim einzubauen. Ich habe die Omnicompletion von Vim sowie Pydiction verwendet. In beiden Fällen erscheint diese Meldung:

Omni-Vervollständigung (^ O ^ N ^ P) Muster nicht gefunden

Ich habe versucht, Vims Omnicompletion mit Python funktioniert einfach nicht. Aber das hilft nicht. Gibt es eine Problemumgehung? 

47
tallandroid

Probiere Jedi ! Es gibt ein Vim-Plugin unter https://github.com/davidhalter/jedi-vim .

Es funktioniert einfach besser als alles andere für Python in Vim. Es gibt sogar Unterstützung für das Umbenennen, Weiterleiten usw. Der beste Teil ist wahrscheinlich, dass es wirklich versucht, Ihren Code zu verstehen (Dekoratoren, Generatoren usw.). Schauen Sie sich die Funktionsliste an.

52
Dave Halter

Dies kann eine gute Option sein, wenn Sie neben anderen Sprachen Python-Vervollständigung wünschen. https://github.com/Valloric/YouCompleteMe

Die Python-Vollendung ist jedi-basiert wie jedi-vim.

12
Xuan

Ich versuchte pydiction (funktionierte nicht für mich) und die normale Omnicompletion (zu begrenzt). Ich sah Jedi wie vorgeschlagen an, fand es aber zu komplex, um es aufzustellen. Ich habe python-mode gefunden, was am Ende meine Bedürfnisse befriedigte. Danke @klen .

6

AFAIK gibt es drei Möglichkeiten, jede mit ihren Nachteilen:

  1. youcompleteme : unfreundlich zu installieren, funktioniert aber Nizza, wenn Sie es schaffen, es zum Laufen zu bringen. python3 wird jedoch nicht unterstützt
  2. jedi-vim : coolster Name, bricht aber deine Geschichte rückgängig
  3. python-mode macht die Autovervollständigung viel mehr: Falten, Syntaxüberprüfung, Hervorheben. Ich persönlich bevorzuge Skripts, die eine Sache gut machen, da sie einfacher zu verwalten (und zu ersetzen) sind. Im Unterschied zu den beiden anderen Optionen verwendet es rope anstelle von jedi für die Autovervollständigung.

Python 3 und Undo History ( gundo! ) sind für mich ein Muss, also sind die Optionen 1 und 2 out. 

6
Rafael Barbosa

Zu diesem Zeitpunkt macht youcompleteme auch Python3.

2
MrLeeh

Ich bin auf meinem Mac mit dem MacPorts vim mit + Python darauf gestoßen. Problem war, dass der MacPorts vim nur mit + python an python 2.5 bindet, während meine Erweiterungen unter python 2.7 installiert wurden. Durch die Installation der Erweiterungen mit pip-2.5 wurde das Problem gelöst.

0
Devon Bleak