¿Hay alguna manera de hacer que Python Omnicomplete funcione con módulos que no son del sistema en vim?

Lo único con lo que puedo conseguir que Python Omnicomplete funcione son los módulos del sistema. No obtengo nada de ayuda con los módulos en mis paquetes de sitio o módulos en los que estoy trabajando actualmente.

Obtengo la finalización de mis propios módulos en mi PYTHONPATH o paquetes de sitio. No estoy seguro de qué versión de la secuencia de comandos pythoncomplete.vim está utilizando, pero es posible que desee asegurarse de que sea la última.

EDIT: Aquí hay algunos ejemplos de lo que estoy viendo en mi sistema …

Este archivo (mymodule.py), lo puse en un directorio en PYTHONPATH, y luego en los paquetes de sitio. Las dos veces pude obtener la captura de pantalla a continuación.

myvar = 'test' def myfunction(foo='test'): pass class MyClass(object): pass 

Una vez que generé ctags para uno de mis paquetes de sitio, empezó a funcionar para ese paquete, así que supongo que la función omnicomplete depende de ctags para módulos que no sean sys.

EDIT: no es cierto en absoluto.

Aquí está el problema: pruebas deficientes de mi parte: omnicompletado. Estaba trabajando para partes de mi proyecto, pero no la mayoría.

El problema fue que estoy trabajando en un proyecto django, y para importar django.db, necesitas tener un conjunto de variables de entorno. Como no pude importar django.db, ninguna clase que heredó de django.db, o cualquier módulo que importó una clase que heredó de django.db no se completaría.

Solo encontré esto en Python reddit esta noche: PySmell . Parece que lo que estás buscando.

PySmell es un ayudante de finalización de IDE de python.

Intenta analizar de forma estática el código fuente de Python, sin ejecutarlo, y genera información sobre la estructura de un proyecto que pueden usar las herramientas IDE.

Si bien es importante tener en cuenta que debe configurar correctamente su variable de entorno PYTHONPATH , de acuerdo con la respuesta anterior, hay un error notable en Vim que impide que la omnicompletación funcione cuando falla una importación . A partir de Vim 7.2.79, este error no se ha solucionado.

Sugerencia para solucionar problemas: verifique que el módulo que está intentando omni-completar puede ser importado por VIM. Tuve un Python sintácticamente correcto que a VIM no le gustó:

 :python import {module-name} Traceback (most recent call last): File "", line 1, in ? File "modulename/__init__.py", line 9 class empty_paranthesis(): ^ SyntaxError: invalid syntax 

Caso en punto, eliminar el paréntesis de mi definición de clase permitió que VIM importara el módulo, y posteriormente OmniComplete en ese módulo comenzó a funcionar.

Creo que tu después de la secuencia de comandos Pydiction . Te permite agregar tus propias cosas y paquetes de sitios para completar omni.

Mientras esté en ello, agregue lo siguiente a su archivo python.vim …

  set iskeyword+=. 

Esto le permitirá completar automáticamente las funciones del paquete, por ejemplo, si ingresa …

  os.path. 

y luego [CTRL] [N], obtendrás una lista de las funciones para os.path.