Estou executando o Debian Jessie e uso o atual vim-nox (com + python -python3). Estou tendo dificuldades para programar no Python 3, pois luto com a conclusão do código do Python 3.
O YouCompleteMe não suporta Python3. O jedi-vim suporta a conclusão do Python 3, mas somente se eu tiver a opção + python3 se a entender corretamente. Em vários posts dos desenvolvedores Debian, parece que compilar o Vim com o sinalizador + python3 não está realmente funcionando. Portanto, fiquei com o plugin do modo python.
Além do fato de que o modo python parece não-mantido (consulte solicitações de recebimento abertas e último commit) e atualmente possui um enorme bug referente à corda em sua ramificação principal, ele interfere no YouCompleteMe. Eu recebo alguma conclusão de código do Python 3 para funcionar, mas somente se eu desativar o YouCompleteMe totalmente. A lista negra do YCM para tipos de arquivos python ou a desativação da conclusão do YCM para arquivos python não funcionam, recebo um aviso do YCM cada vez que abro o vim.
Então, minhas perguntas são:
Como faço para que um preenchimento automático do Python 3 funcione em uma distribuição Debian atual sem desativar o YouCompleteMe (que eu quero para outras linguagens de programação)? Por que um plug-in não mantido é a única opção no momento para o preenchimento de código para uma linguagem de programação tão importante (o Python 3 não pode mais ser considerado novo ..)?
Respostas:
A maneira ideal é obter a fonte do Vim e compilá-la você mesmo.
Etapa 1: Para sistemas do tipo Debian, obtenha os pacotes necessários:
Etapa 2: Clone o código-fonte do Vim:
Etapa 3: configurar, criar, instalar
Etapa 4: Feito! Você deve ter uma versão enorme do vim, com suporte ao + python3. Ele também possui suporte à área de transferência para que você possa usá-lo com a área de transferência do sistema e uma versão da GUI.
Obviamente, você pode remover os sinalizadores de configuração que você não deseja ou adicionar alguns. O YouCompleteMe realmente possui um wiki bastante longo, dedicado a explicar como criar o Vim a partir da fonte aqui
fonte
:echo has('python3')
, recebo0
, enquanto:echo has('python')
retorna1
. Eu tenho as seguintes opções na minha .vimrc, mas eles não ajudam: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
arquivo vinculado na barra lateral. Acredito que todos os pacotes que você sugeriu, excetomercurial
, são listados direta ou transitivamente comoBuild-Depends
. Em particular,libgnomeui-dev
é provavelmente responsável por muitas dessas dependências.O jedi-vim funciona bem para mim agora, com o suporte do + python3 no vim. Em acrescentou a seguinte opção ao meu .vimrc:
let g:jedi#force_py_version = 3
.fonte
Escrevendo isso mais como uma nota para mim do que qualquer coisa, mas talvez isso seja útil para alguns: no Arch Linux, você pode instalar uma versão do vim compilada com python3:
Digite y e isso substituirá o seu vim existente pelo vim ativado por python3.
Então:
instalará o preenchimento automático, para python3.
fonte
Há algumas semanas, o YouCompleteMe suporta a conclusão do Python3 usando o Jedi por meio de um wrapper JediHTTP. Instale apenas o YouCompleteMe (não é necessário instalar o jedi-vim) de acordo com as instruções de instalação e adicione a seguinte linha ao seu
.vimrc
:Isso força o YCM a usar o Jedi com Python3 (o padrão é usar o Jedi com o mesmo interpretador Python usado pelo servidor ycmd, que é Python2).
Isso funciona, não importa se o seu Vim é compilado com ou sem o
+python3
sinalizador - você obtém o preenchimento automático do Python3 (e a documentação consulta e muito mais).fonte
Estou em uma posição em que tenho que alternar constantemente entre dois projetos python, um usando python 2 e o outro python 3. Como você observou, o completeme não funciona com o python 3.
Primeiro, compilei uma versão adicional do vim com python 3 (iniciada no vim3) e uso o vundle como gerenciador de plugins.
No meu .vimrc eu tenho:
Ele desativa o complemento quando executo o vim3, mas, em vez disso, tenho o preenchimento automático do jedi-vim. Eu apenas comecei a usá-lo, e este post do blog diz que eles não são compatíveis juntos, mas para mim o autocomplete funciona em ambos, os trabalhos de definição de jedi, o pylint do modo python funciona e nenhum plugin reclama na inicialização. Tudo de bom até agora :)
fonte
Use deoplete e deoplete-jedi se estiver aberto ao neovim. Na minha experiência, isso funciona muito bem, onde o YCM tem um pouco de aborrecimentos.
fonte