2011-08-21 26 views
40

Estoy tratando de incorporar una característica de autocompletar en Vim. He utilizado la omnicompleción de Vim y Pydiction. Pero en ambos casos este mensaje aparece:Autocompletar Vim para Python

finalización Omni (^ O^N^P) Patrón no encontrado

He tratado Vim's Omnicompletion with Python just doesn't work. Pero esto no está ayudando. ¿Hay alguna solución?

+2

¿Has visto este enlace? http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/ – Efazati

+1

¿Se ha detectado el archivo como un archivo python? Ábrelo y ejecuta ': echo & ft'. Si esto no devuelve "python", intente agregar "filetype plugin on" a su vimrc y vuelva a intentar todo esto. –

Respuesta

45

Probar Jedi! Hay un plugin de Vim al https://github.com/davidhalter/jedi-vim.

Funciona mucho mejor que cualquier otra cosa para Python en Vim. Incluso tiene soporte para cambiar el nombre, goto, etc. La mejor parte es probablemente que realmente intente comprender su código (decoradores, generadores, etc. Basta con mirar la lista de características).

+2

Intenté esto pero lo único que recibo son cientos de errores. – pfnuesel

+1

Necesito saber los errores y ': ver' entonces. Esto puede suceder si no tiene vim con + python instalado (por ejemplo, ciertas ediciones Windows vim). –

+0

El error: Vim: Señal fatal capturada SEGV Vim: Terminado. Segmentation Fault – pfnuesel

6

Probé la piratería (no funcionó para mí) y la omnicompleción normal (demasiado limitada). Miré a Jedi según lo sugerido, pero me pareció demasiado complejo de configurar. Encontré python-mode, que al final satisfizo mis necesidades. Gracias @klen.

+0

Este es el que funcionó para mí. Las otras herramientas eran demasiado complicadas de instalar. – max

0

Me encontré con esto en mi Mac usando MacPorts vim con + python. El problema fue que MacPorts vim solo se vinculará a python 2.5 con + python, mientras que mis extensiones se instalaron en python 2.7. Instalar las extensiones usando pip-2.5 lo resolvió.

4

yo sepa hay tres opciones, cada una con sus desventajas:

  1. youcompleteme: antipáticos de instalar, pero funciona bien si logras conseguir que funcione. Sin embargo, python3 es no compatible con.
  2. jedi-vim: el nombre más genial, pero rompe su undo history.
  3. python-mode hace mucho más autocompletar: plegado, comprobación de sintaxis, resaltado. Personalmente, prefiero los scripts que hacen 1 cosa bien, ya que son más fáciles de administrar (y reemplazar). A diferencia de las otras dos opciones, usa rope en lugar de jedi para autocompletar.

Python 3 y el historial de deshacer (gundo!) son imprescindibles para mí, por lo que las opciones 1 y 2 están fuera.

+0

Gracias por señalar las desventajas, eso hizo la elección mucho más fácil, ya que comparto la opinión sobre Python 3 y deshago. – Zelphir

+0

Parece que la cuerda no es compatible con Python 3 (https://github.com/python-rope/rope/issues/57)? ¿Cómo usar la función de autocompletar con python-mode y soga? Gracias. – Chad

2

En este momento youcompleteme también hace Python3.