Python importiert die automatische Vervollständigung

7

Ich versuche, vim für die Python-Entwicklung zu konfigurieren. Im Moment arbeite ich an der Funktion zur automatischen Vervollständigung von Code. Ich verwende das YouCompleteMe-Plugin und es scheint großartig zu funktionieren, aber nur, wenn ich bereits ein bestimmtes Modul importiert habe. Zum Beispiel, wenn ich tippe

import datetime

und dann

datetime.

Ich erhalte eine Liste der verfügbaren Klassen / Module / Funktionen usw. Was mir fehlt, ist die Möglichkeit, beim Schreiben von Importanweisungen Modulvorschläge zu erhalten. Das Datetime-Modul scheint in diesem Fall trivial zu sein, daher verwende ich das Django-Framework als Beispiel. Ich möchte so etwas erreichen:

from django.

listet alle Module in django auf, ich wähle eines davon, zB Ansichten

from django.views.

listet alle Module in django.views auf, ich wähle zB generisch

from django.views.generic import

Und dann möchte ich die automatische Vervollständigung von Klassen, Funktionen und Variablen, die in diesem Modul verfügbar sind, z

from django.views.generic import TemplateView

Haben Sie einen Vorschlag, wie dies erreicht werden kann?

mateuszb
quelle

Antworten:

1

Mir ist klar, dass dies sehr spät ist, aber ich habe diese Frage gefunden, lange bevor ich auf die Antwort gestoßen bin, also lasse ich sie hier. Indem Sie Ihrer .vimrc-Datei Folgendes hinzufügen, können Sie in Ihre Python-Virtualenv laden und dann einige ycm-Einstellungen vornehmen.

" python with virtualenv support
py << EOF
import os
import sys
if 'VIRTUAL_ENV' in os.environ:
    project_base_dir = os.environ['VIRTUAL_ENV']
    activate_this = os.path.join(project_base_dir, 'bin/activate_this.py')
    execfile(activate_this, dict(__file__=activate_this))
EOF

let g:ycm_server_python_interpreter='python3'
let g:ycm_autoclose_preview_window_after_completion=1
map <leader>g :YcmCompleter GoToDefinitionElseDeclaration<CR>
Murphy4
quelle