Das einzige, was ich python omnicomplete zur Arbeit bekommen kann, sind Systemmodule. Ich bekomme nichts mit Modulen in meinen Site-Paketen oder Modulen, an denen ich gerade arbeite.Gibt es eine Möglichkeit, python omnicomplete mit Nicht-System-Modulen in vim zu arbeiten?
Antwort
Ich bekomme Komplettierung für meine eigenen Module in meinem PYTHONPATH oder Site-Pakete. Ich bin mir nicht sicher, welche Version des pythoncomplete.vim-Skripts Sie verwenden, aber Sie möchten vielleicht sicherstellen, dass es das Neueste ist.
EDIT: Hier einige Beispiele von dem, was ich auf meinem System zu sehen bin ...
Diese Datei (mymodule.py), I Puth in einem Verzeichnis in PYTHONPATH und dann in Website-Paketen. Beide Male konnte ich den Screenshot unten sehen.
myvar = 'test'
def myfunction(foo='test'):
pass
class MyClass(object):
pass
screenshot http://i437.photobucket.com/albums/qq96/jmcantrell/screenshot.png
Gerade lief über dieses auf Python Reddit heute Abend: PySmell. Sieht aus, wonach du suchst.
PySmell ist ein Python-IDE-Komplettierungshelfer.
Es versucht, Python-Quellcode statisch zu analysieren, ohne es auszuführen, und generiert Informationen über eine Projektstruktur, die IDE-Tools verwenden können.
Ich denke, Sie nach dem pydiction Skript. Sie können Ihre eigenen Sachen und Site-Pakete zu omni complete hinzufügen.
Während Ihr es, die folgenden auf Ihre python.vim Datei hinzufügen ...
set iskeyword+=.
Dies wird Ihnen Auto-Komplettpaket Funktionen lassen z.B. wenn Sie eingeben ...
os.path.
und dann [CTRL] [N], finden Sie eine Liste der Funktionen für os.path bekommen.
Sobald ich ctags für eine meiner Website-Pakete erzeugt, begann es für das Paket arbeiten - so dass ich vermute, die omnicomplete Funktion auf ctags für Nicht-sys Module abhängt.
EDIT: Nicht wahr überhaupt.
Hier ist das Problem - schlechte Tests meinerseits - omnicomplete WAS arbeitet für Teile meines Projekts, nur nicht das meiste davon.
Das Problem war, dass ich an einem Django-Projekt arbeite, und um django.db zu importieren, muss eine Umgebungsvariable gesetzt sein. Da ich django.db nicht importieren konnte, würde jede Klasse, die von django.db geerbt wurde, oder jedes Modul, das eine Klasse importierte, die von django.db geerbt hatte, nicht abgeschlossen werden.
Ich hatte das gleiche Problem außer mit app engine Bibliotheken, nicht django ... Danke, dass du mir geholfen hast, es herauszufinden – gravitation
Hatte dieses Problem ein paar Mal jetzt, das erste, was ich immer versuche, das Modul in den Vanilla-Interpreter zu importieren , das scheint immer zu zeigen, wo der Fehler ist. Wenn Sie Django oder App-Engine oft verwenden, importieren sie in einer anderen Reihenfolge als der Interpreter, was zu Problemen führen kann. – gravitation
Während es wichtig zu beachten ist, dass Sie Ihre Umgebungsvariable PYTHONPATH
richtig einstellen müssen, gibt es nach der vorherigen Antwort eine bemerkenswerte bug in Vim which prevents omnicompletion from working when an import fails. Ab Vim 7.2.79 wurde dieser Fehler nicht behoben.
Tipp zur Fehlerbehebung: Vergewissern Sie sich, dass das Modul, von dem Sie versuchen, es zu omni-complete zu machen, von VIM importiert werden kann.Ich hatte einig syntaktisch korrekten Python, dass VIM nicht gefallen hat:
:python import {module-name}
Traceback (most recent call last):
File "<string>", line 1, in ?
File "modulename/__init__.py", line 9
class empty_paranthesis():
^
SyntaxError: invalid syntax
Case-in-Punkt, die Klammer aus meiner Klassendefinition zu entfernen erlaubt VIM das Modul zu importieren und anschließend OmniComplete an diesem Modul begann zu arbeiten.
- 1. Gibt es eine Möglichkeit, das Verhalten des vim omnicomplete-Menüs zu ändern?
- 2. vim Javascript Omnicomplete
- 3. Gibt es eine Möglichkeit, AngularJS mit HTML zu arbeiten?
- 4. Gibt es eine Möglichkeit, vim-Befehle umzubenennen?
- 5. Gibt es eine Möglichkeit, PyPortMidi auf Win7-64 zu arbeiten?
- 6. Vim style Omnicomplete für Emacs?
- 7. VIM php omnicomplete - mehrstufige Objekthierarchie
- 8. Gibt es eine Möglichkeit, Vim Falten zu benennen?
- 9. Gibt es eine Möglichkeit, Asio ohne Boost arbeiten zu lassen?
- 10. Gibt es eine Möglichkeit, eine Klasseneigenschaft in Python zu erstellen?
- 11. Gibt es eine Möglichkeit, mehrere Suchen in (g) Vim hervorzuheben?
- 12. Gibt es eine Möglichkeit, Python-Druckanweisungen in Gunicorn zu protokollieren?
- 13. Gibt es eine Möglichkeit, + = in Python zu überladen?
- 14. Gibt es eine Möglichkeit, Datenbanktransaktionen zu beschleunigen?
- 15. VIM: Gibt es eine Möglichkeit vim nicht kopieren zu machen, wenn Sie Text löschen
- 16. Gibt es eine Möglichkeit, beliebigen Text an Vim weiterzuleiten?
- 17. Gibt es eine Möglichkeit programmgesteuert Python-Bytecode zu generieren?
- 18. Gibt es eine Möglichkeit, eine Testdatenbank in Katalysator zu verwenden?
- 19. Gibt es eine Möglichkeit, eine Datei in Subversion zu "kleben"?
- 20. Gibt es eine Möglichkeit, Ribbon-Symbolleisten in Tkinter zu verwenden?
- 21. Gibt es eine effizientere Möglichkeit, diesen Python-Code zu schreiben?
- 22. Gibt es eine bessere Möglichkeit, diesen Python-Code zu machen?
- 23. Gibt es eine Möglichkeit, eine Syntaxdatei in Vim als HTML zu kopieren?
- 24. Gibt es eine Möglichkeit, eine KeyPreview-ähnliche Funktionalität beim Arbeiten mit Frames zu haben?
- 25. Gibt es eine Möglichkeit, Python-Skript unter Xamarin.Android zu verwenden?
- 26. Gibt es eine Möglichkeit, Rubyinstaller mit Cygwin zu spielen?
- 27. Gibt es eine Möglichkeit, Python 3.5 auf Cygwin zu verwenden?
- 28. Gibt es eine Möglichkeit, mit Foundation-Objekten (NSString, NSArray, NSDictionary) in Swift ohne Überbrückung zu arbeiten?
- 29. Gibt es eine einfachere Möglichkeit, mit dem britischen Datumsformat in Powershell zu arbeiten?
- 30. Gibt es eine Möglichkeit, mit OneNote über Code zu kommunizieren?
Ich habe gerade die neueste Version heruntergeladen - kein Glück! Wie ermöglichen Sie es? Verwenden Sie auch CTAGs? – andrew
Wie testen Sie es? Versuchen Sie einfach etwas wie "import sys" und dann tun "sys." –
Wie ich schon sagte, System-Module omnicomplete einfach in Ordnung. Es sind die Module in meinen Site-Paketen, für die ich keine Fertigstellung bekomme. – andrew