Estoy ejecutando Debian Jessie y uso el vim-nox actual (con + python -python3). Me está costando mucho intentar programar en Python 3, ya que me cuesta completar el código de Python 3.
YouCompleteMe no es compatible con Python3 en absoluto. jedi-vim admite la finalización de Python 3, pero solo si tuviera la opción + python3 si la entiendo correctamente. De varias publicaciones de desarrolladores de Debian parece que compilar Vim con la bandera + python3 no está funcionando realmente. Por lo tanto, me queda el complemento del modo python.
Además del hecho de que el modo python parece no mantenido (ver solicitudes de extracción abiertas y últimas confirmaciones) y actualmente tiene un gran error relacionado con la cuerda en su rama maestra, interfiere con YouCompleteMe. Obtengo algo de terminación de código de Python 3 para trabajar, pero solo si deshabilito YouCompleteMe por completo. No funciona la lista negra de YCM para los tipos de archivo de Python o la desactivación de la finalización de YCM para los archivos de Python, recibo una advertencia de YCM cada vez que abro vim.
Entonces mis preguntas son:
¿Cómo puedo hacer que un autocompletado de Python 3 funcione en una distribución Debian actual sin desactivar YouCompleteMe (que quiero para otros lenguajes de programación)? ¿Cómo es que un complemento no mantenido es la única opción en este momento para completar el código de un lenguaje de programación tan importante (Python 3 ya no puede considerarse nuevo ...)?
Respuestas:
La forma ideal es obtener la fuente de Vim y compilarla usted mismo.
Paso 1: para sistemas similares a Debian, obtenga los paquetes necesarios:
Paso 2: código fuente de Clone Vim:
Paso 3: configurar, hacer, instalar
Paso 4: ¡Listo! Debería tener una versión enorme de vim, con soporte para + python3. También tiene soporte para portapapeles + para que pueda usarlo con el portapapeles de su sistema y una versión gui.
Por supuesto, puede eliminar los indicadores de configuración que no desea o agregar algunos. YouCompleteMe en realidad tiene un wiki bastante extenso dedicado a explicar cómo construir Vim desde la fuente aquí
fuente
:echo has('python3')
me sale0
, mientras que:echo has('python')
vuelve1
. Tengo las siguientes opciones en mi .vimrc, pero no ayudan a:let g:ycm_path_to_python_interpreter = '/usr/bin/python3 let g:ycm_filetype_specific_completion_to_disable = { 'python' : 1 } let g:ycm_filetype_blacklist = { 'python' : 1 }
.apt-get build-dep vim
.dsc
archivo vinculado en la barra lateral. Creo que todos los paquetes que sugirió, exceptomercurial
, se enumeran directa o transitivamente comoBuild-Depends
. En particular,libgnomeui-dev
es probablemente responsable de muchas de esas dependencias.jedi-vim funciona bien para mí ahora con soporte para + python3 en vim. En añade la siguiente opción para mi .vimrc:
let g:jedi#force_py_version = 3
.fuente
Escribir esto más como una nota para mí mismo que cualquier otra cosa, pero tal vez esto sea útil para algunos: en Arch Linux, puede instalar una versión de vim compilada con python3:
Escriba y y esto reemplazará su vim existente con el vim habilitado para python3.
Luego:
instalará el autocompletado, para python3.
fuente
Desde hace un par de semanas, YouCompleteMe admite la finalización de Python3 usando Jedi a través de un contenedor JediHTTP. Solo instale YouCompleteMe (no es necesario instalar jedi-vim) de acuerdo con las instrucciones de instalación y agregue la siguiente línea a su
.vimrc
:Esto obliga a YCM a usar Jedi con Python3 (el valor predeterminado es usar Jedi con el mismo intérprete de Python que usa el servidor ycmd, que es Python2).
Esto funciona sin importar si su Vim se compila con o sin la
+python3
marca: obtendrá la finalización automática de Python3 (y la búsqueda de documentación y más).fuente
Estoy en una posición en la que tengo que cambiar constantemente entre dos proyectos de Python, uno con Python 2 y el otro con Python 3. Como notaron, completememe no funciona con Python 3.
Primero compilé una versión adicional de vim con python 3 (que comienzo con vim3) y uso vundle como administrador de complementos.
En mi .vimrc tengo:
Deshabilita youcompleteme cuando ejecuto vim3, pero tengo el autocompletado jedi-vim en su lugar. Recién comencé a usarlo, y esta publicación de blog dice que no son compatibles entre sí, pero para mí el autocompletado funciona en ambos, los trabajos de definición de jedi, el pylint del modo python funciona y ningún complemento se queja al inicio. Todo bien hasta ahora :)
fuente
Use deoplete y deoplete-jedi si está abierto a neovim. En mi experiencia, esto funciona bastante bien, donde YCM tiene algunos problemas.
fuente