J'utilise Debian Jessie et j'utilise le vim-nox actuel (avec + python -python3). J'ai du mal à programmer en Python 3, car j'ai du mal à terminer le code Python 3.
YouCompleteMe ne prend pas du tout en charge Python3. jedi-vim prend en charge l'achèvement de Python 3, mais seulement si j'aurais l'option + python3 si je la comprends correctement. D'après plusieurs articles des développeurs Debian, il semble que la compilation de Vim avec l'indicateur + python3 ne fonctionne pas vraiment. Par conséquent, je me retrouve avec le plugin en mode python.
Outre le fait que le mode python semble non maintenu (voir les demandes d'ouverture et les derniers commits) et qu'il a actuellement un énorme bug concernant la corde dans sa branche principale, il interfère avec YouCompleteMe. J'obtiens de l'achèvement de code Python 3 pour travailler, mais seulement si je désactive totalement YouCompleteMe. Mettre sur liste noire YCM pour les types de fichiers python ou désactiver la complétion YCM pour les fichiers python ne fonctionne pas, je reçois un avertissement YCM chaque fois que j'ouvre vim.
Mes questions sont donc:
Comment puis-je obtenir une autocomplétion Python 3 pour travailler sur une distribution Debian actuelle sans désactiver YouCompleteMe (ce que je veux pour d'autres langages de programmation)? Comment se fait-il qu'un plugin non entretenu soit actuellement le seul choix pour l'achèvement du code pour un langage de programmation aussi important (Python 3 ne peut plus être considéré comme nouveau ..)?
Réponses:
L'idéal est d'obtenir la source de Vim et de la compiler vous-même.
Étape 1: Pour les systèmes de type Debian, obtenez les packages requis:
Étape 2: Cloner le code source de Vim:
Étape 3: Configurer, créer, installer
Étape 4: terminé! Vous devriez avoir une version énorme de vim, avec le support + python3. Il prend également en charge + le presse-papiers afin que vous puissiez l'utiliser avec le presse-papiers de votre système et une version gui.
Bien sûr, vous pouvez supprimer les indicateurs de configuration dont vous ne voulez pas ou en ajouter. YouCompleteMe a en fait un wiki assez long dédié à expliquer comment construire Vim à partir des sources ici
la source
:echo has('python3')
je reçois0
, tandis que:echo has('python')
revient1
. J'ai les options suivantes dans mon .vimrc, mais ils ne contribuent pas à :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
fichier lié dans la barre latérale. Je crois que tous les packages que vous avez suggérés, saufmercurial
, sont répertoriés directement ou de manière transitoireBuild-Depends
. En particulier,libgnomeui-dev
est probablement responsable de bon nombre de ces dépendances.jedi-vim fonctionne bien pour moi maintenant avec le support + python3 dans vim. Dans ajouté l'option suivante à mon .vimrc:
let g:jedi#force_py_version = 3
.la source
L'écrire plus comme une note pour moi que n'importe quoi, mais peut-être que cela sera utile pour certains: sur Arch Linux, vous pouvez installer une version de vim compilée avec python3:
Tapez y et cela remplacera votre vim existant par le vim activé python3.
Ensuite:
va installer l'auto-complétion, pour python3.
la source
Depuis quelques semaines, YouCompleteMe prend en charge l'achèvement de Python3 en utilisant Jedi via un wrapper JediHTTP. Installez YouCompleteMe uniquement (pas besoin d'installer jedi-vim) selon les instructions d'installation et ajoutez la ligne suivante à votre
.vimrc
:Cela oblige YCM à utiliser Jedi avec Python3 (la valeur par défaut est d'utiliser Jedi avec le même interpréteur Python que celui utilisé par le serveur ycmd, qui est Python2).
Cela fonctionne peu importe si votre Vim est compilé avec ou sans l'
+python3
indicateur - vous obtenez l'auto-complétion Python3 (et la recherche de documentation et plus).la source
Je suis dans une position où je dois constamment basculer entre deux projets python, l'un utilisant python 2, l'autre python 3. Comme vous l'avez noté, youcompleteme ne fonctionne pas avec python 3.
J'ai d'abord compilé une version supplémentaire de vim avec python 3 (que je commence par vim3) et j'utilise vundle comme gestionnaire de plugins.
Dans mon .vimrc j'ai:
Il désactive youcompleteme lorsque j'exécute vim3, mais j'ai la saisie semi-automatique jedi-vim à la place. Je viens juste de commencer à l'utiliser, et ce billet de blog dit qu'ils ne sont pas compatibles ensemble, mais pour moi, les travaux de saisie semi-automatique fonctionnent dans les deux, les travaux de définition de Jedi, les travaux de pylint en mode Python et aucun plugin ne se plaint au démarrage. Tout va bien jusqu'à présent :)
la source
Utilisez deoplete et deoplete-jedi si vous êtes ouvert aux néovim. D'après mon expérience, cela fonctionne assez bien, où YCM a un peu de tracas.
la source