Python importa autocompletar

7

Estou tentando configurar o vim para desenvolvimento em python. No momento, estou trabalhando no recurso de preenchimento automático de código. Estou usando o plugin YouCompleteMe e parece estar funcionando muito bem, mas somente quando já importei o módulo. Por exemplo, se eu digitar

import datetime

e depois

datetime.

Recebo uma lista de classes / módulos / funções disponíveis etc. O que estou perdendo é a possibilidade de obter sugestões de módulos ao escrever instruções de importação. O módulo data e hora parece ser trivial neste caso, então eu uso o framework Django como exemplo. Eu gostaria de conseguir algo assim:

from django.

lista todos os módulos do django, eu escolho um deles, por exemplo, visualizações

from django.views.

lista todos os módulos no django.views, eu escolho, por exemplo, genérico

from django.views.generic import

E então eu gostaria de ter o preenchimento automático de classes, funções, variáveis ​​disponíveis neste módulo, por exemplo

from django.views.generic import TemplateView

Você tem alguma sugestão de como isso pode ser alcançado?

mateuszb
fonte

Respostas:

1

Sei que é muito tarde, mas encontrei essa pergunta muito antes de me deparar com a resposta, por isso estou deixando isso aqui. Adicionando o seguinte ao seu arquivo .vimrc, você pode carregar o seu python virtualenv e definir algumas configurações de ycm.

" 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
fonte