4 Stimmen

Python Omnicompletion im Vim-Editor funktioniert nicht

Ich versuche, vim auf meiner Python-Reise zu verwenden, basierend auf dieser Leitfaden .

Ich glaube, ich habe das gleiche Problem wie ein bezahlter Nerd aber da sie keine Lösung gefunden haben, poste ich hier erneut.

Aus irgendeinem Grund kann ich Omnicompletion nicht in Vim mit Python zum Laufen bringen. Ich habe das fabelhafte R-Plugin und die Liste der Tags erstellt. So bekomme ich Omnivergänzung mit R.

Aber nicht für Python. Ein paar Beobachtungen:

  1. :echo &omnifunc druckt pythoncomplete#Complete .
  2. die .vim/doc/tags Datei hat R-Tags, aber kein Python (aber das liegt daran, dass Python standardmäßig unterstützt wird, oder?)
  3. Wenn ich das tue import math en mi .py Datei kann ich z. B. automatisch vervollständigen. ma a math. aber es werden keine Methoden gefunden?

Wie kann ich vorgehen?

1 Stimmen

Also, wenn Sie vim a.py , import math , math.s^x^O sehen Sie keine sin(x) sinh(x) sqrt(x) Liste?

0 Stimmen

Mein Gott, ich bin ein Arsch - ja, das bin ich. Anscheinend funktioniert die Omnicompletion in Vim anders als in Geany? In Geany ist alles - sogar Drucken - in der Omniververvollständigung enthalten... Eigentlich - wenn man das mit Geany ausprobiert, scheint es, dass die Autovervollständigung von Geany etwas ganz anderes ist. Tut mir leid Leute... Ich fühle mich wirklich peinlich berührt.

0 Stimmen

Eelvex - können Sie eine Antwort geben, die ich akzeptieren kann? Das wird Ihnen einige Punkte einbringen und meine Dummheit für die ganze Welt sichtbar machen :-)

6voto

Eelvex Punkte 8592

Es scheint, dass die standardmäßige Omnicompletion für Python ( pythoncomplete#Complete ) weiß nichts über Buildins/Schlüsselwörter.

Wenn Sie Ctrl-XCtrl-O en math. (wenn Sie "math" importiert haben), sollten Sie die verfügbaren math. Funktionen, sondern auch für print , sorted usw. Ich glaube benötigen Sie ein Plugin wie:

0 Stimmen

Vielen Dank dafür - und auch für die Hinweise auf Pydiction und PySmell - ich werde sie mir ansehen.

0voto

kuba Punkte 31

Ich nehme an, alle Module, die Sie importieren, befinden sich im Python-Pfad, richtig? Prüfen Sie, ob alle Ihre Importe in dieser Datei funktionieren. In meinem Fall hat ein fehlerhafter Import (Syntaxfehler im importierten Modul) die Omnicompletion zerstört.

0 Stimmen

Ich bin mir ziemlich sicher, da ich gerade mit einer Vanille-Python-Installation arbeite, um Python zu lernen. Ich habe selbst keine Module erstellt. in vim: "python import sys" und "python print sys.path" gibt die Pfade aus.

0voto

Kracekumar Punkte 17881

Prüfen Sie das Verzeichnis ~/.vim, im Verzeichnis doc sollte NERD_tree.txt stehen, also sollten Sie das Nerd-Tree-Plugin installiert haben. . .

0voto

Adam Byrtek Punkte 11613

.vim/doc/tags enthält Tags für die Vim-Dokumentation (einschließlich des R-Plugins), und dies hat nichts mit den Tags zu tun, die für die Vervollständigung verwendet werden. Sie können sie neu generieren, indem Sie

:helptags ~/.vim/doc

Welches Tastaturkürzel verwenden Sie, wenn es um die Fertigstellung geht? Standardmäßig ist das Omni-Complete an Ctrl-X Ctrl-O und nicht die üblichen Ctrl-N .

0 Stimmen

Danke, das habe ich mir auch gedacht. Und ja - ich benutze Strg-x Strg-o - was mit R-Dateien funktioniert. Wenn ich ctrl-x Ctrl-o verwende, bekomme ich "-- Omni completion (^O^N^P) Pattern not found"

0voto

djs Punkte 4356

Es gibt eine Reihe von Plugins für die Python-Vervollständigung. Der vim python filetype plugin scheint im Moment das Beste zu sein. Es erfordert einen Vim mit Python-Unterstützung, und sollte ansonsten von Haus aus funktionieren. Vervollständigung von Systemmodulen wird nur funktionieren, und Sie werden ihre Methoden in omnicompletion.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X