Transformer Vim en IDE pour Python

Par défaut Vim est très simple, mais il est possible de le customiser avec de très nombreux plugins. Ici je vais présenter ma manière de faire de Vim un IDE pour coder en Python. Comme à mon habitude ce tuto est fait pour Vim en version 8 ou supérieur, il s’applique à Linux Debian ainsi qu’à ces dérivés (Ubuntu, Linux Mint, …) même si bien entendu n’importe quelle distribution Linux fera l’affaire il faudra seulement s’adapter pour installer les paquets prérequis.

Prérequis

  • Vim en version 8 ou +
  • Git
  • Python3.6 ou +
    Pour vérifier dans quelle version est votre Python faîtes

    python3
    Python 3.7.2 (default, Jan  3 2019, 02:55:40) 
    [GCC 8.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    

    Si Python n’est pas installé ou dans une version antérieure il faut l’installer de cette manière

    sudo apt install python3
  • Pip3
    Pour vérifier si pip est installé faîtes

    apt list --installed |grep pip
    ...
    
    python3-pip/testing 18.1-4 all  [installé]

    Si pip3 n’est pas présent il faut installer le paquet qui va bien

    sudo apt install python3-pip

    Pour vérifier la version de pip installée

    pip3 --version
    
    ...
    pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
    
  • Le répertoire ~/.local/bin doit être dans le PATH, pour vérifier si il y est, entrez dans un terminal la commande :
    echo $PATH

    Si le répertoire n’y est pas, il faut ajouter dans le fichier ~/.bashrc la ligne :

    PATH=$PATH:~/.local/bin

    Puis ouvrir un nouveau terminal.

ALE

Pour Asynchronous Lint Engine, ce plugin permet d’analyser en direct ce que vous entrez dans l’éditeur, et en fonction des analyseurs paramétrés (que nous verrons plus loin) mettra en évidence des erreurs et proposera des corrections.

mkdir -p ~/.vim/pack/git-plugins/start/ale/
cd ~/.vim/pack/git-plugins/start/ale/
git clone https://github.com/w0rp/ale.git .

Dans le fichier ~/.vimrc ajouter les lignes suivantes :

""" ALE
" Enable completion where available.
let g:ale_completion_enabled=1
let g:ale_lint_on_save=1
let g:ale_fix_on_save=0

Ces options servent à activer l’analyse lint seulement quand on sauvegarde et de désactiver le fix automatique.

Autopep8

Ce logiciel est un vérificateur de format qui répond à la norme PEP8 de Python, il est utilisé par ALE pour vérifier si votre code est bien compatible PEP8. Pour l’installer j’utilise l’installateur de Python.

pip3 install autopep8

Puis ajouter à la suite de la section ALE dans le fichier ~/.vimrc

let g:ale_fixers={'python':['autopep8']}

On peut lancer autopep8 avec la commande Vim :ALEFix

Pylint

Ce logiciel est un analyseur de qualité et de bug du code Python, il est utilisé par ALE afin de minimiser les erreurs et de créer le code le plus propre (Pythonique) possible. Pour l’installer j’utilise pip.

pip3 install pylint

Puis ajouter à la suite de la section ALE dans le fichier ~/.vimrc

let b:ale_linters={'python':['pylint']}

Lorsqu’il y a des problèmes de syntax ou des incohérences on voit à gauche de la ligne un symbole de couleur et quand on place le curseur dessus la raison s’affiche dans la barre de statut

YouCompleteMe

Comme sont nom l’indique YouCompleteMe sert à fournir l’auto-complétion dans Vim, il gère de nombreux langages et est plutôt rapide et performant.

Prérequis

le logiciel cmake est nécessaire afin de compiler ce plugin

sudo apt install cmake

installation

mkdir -p ~/.vim/pack/git-plugins/start/YouCompleteMe
cd ~/.vim/pack/git-plugins/start/YouCompleteMe
git clone --recursive https://github.com/Valloric/YouCompleteMe.git .
python3 install.py

Normalement la dernière étape (la compilation de YouCompleteMe) doit donner quelque chose comme

Compilation de YouCompleteMe pour Vim

Une fois installé les propositions d’autocomplétions arrivent de cette manière

YouCompleteMe en fonctionnement dans Vim

Airline

Ce plugin crée une barre de statut sympathique et colorée, possédant de nombreux thèmes. Pour l’installation de base il faut faire :

mkdir -p ~/.vim/pack/git-plugins/start/vim-airline
cd ~/.vim/pack/git-plugins/start/vim-airline
git clone https://github.com/vim-airline/vim-airline.git .

Ce qui donne dans Vim :

Plugin Airline dans Vim

Différents thèmes

Il est aussi possible d’installer un pack de thèmes

mkdir -p ~/.vim/pack/git-plugins/start/vim-airline-themes
cd ~/.vim/pack/git-plugins/start/vim-airline-themes
git clone https://github.com/vim-airline/vim-airline-themes.git .:

Pour voir les différents thèmes disponibles il faut ce rendre à cette page, puis pour activer le thème que l’on désire il faut soit entrer la commande dans Vim

:AirlineTheme <nom_du_theme>

Soit ajouter dans le fichier ~/.vimrc la ligne :

let g:airline_theme='<nom_du_theme>'

Barre d’onglets intelligente

Airline propose plusieurs possibilités dont une barre d’onglets qui affichera les buffers ouverts ainsi que les onglets avec des couleurs.
Pour l’activer il faut entrer dans le fichier ~/.vimrc

let g:airline#extensions#tabline#enabled = 1

Ce qui donne :Barre d'onglet du plugin Airline pour Vim

PEP8 Indent

Plugin très utilise afin d’avoir une auto indentation pour Python conforme à la norme PEP8, l’installation s’effectue comme suit :

mkdir -p ~/.vim/pack/git-plugins/start/pep8_indent
cd ~/.vim/pack/git-plugins/start/pep8_indent
git clone https://github.com/Vimjas/vim-python-pep8-indent.git .

Ctrl P

Cette extension sert à chercher des fichiers, soit sur le disque soit dans les fichiers déjà ouverts, il accepte les regexp et est très rapide. Il s’installe de cette manière :

mkdir -p ~/.vim/pack/git-plugins/start/ctrlp
cd ~/.vim/pack/git-plugins/start/ctrlp
git clone https://github.com/ctrlpvim/ctrlp.vim.git .

Comme sont nom l’indique il faut utiliser la combinaison de touches <CTRL+p> pour l’invoquer, puis ensuite entrer le patern du fichier recherché. Le résultat est le suivant :

CtrlP plugin dans Vim

Pour changer d’onglet de proposition (fichiers sur le disque, fichiers ouvert dans Vim et fichiers ouvert récemment) il faut faire <CTRL+f> ou bien <CTRL+b>. Pour recharger la liste des fichiers sur le disque dur il faut appuyer sur <F5>

Jellybeans

Jellybeans est un thème de couleur que j’aime bien, il apporte bien entendu que de l’esthétique mais un environnement de travail que l’on trouve joli est plus agréable à utiliser.

mkdir -p ~/.vim/pack/git-plugins/start/color
cd ~/.vim/pack/git-plugins/start/color
git clone https://github.com/nanotech/jellybeans.vim.git .

Afin de l’activer il faut ajouter dans le fichier ~/.vimrc la ligne suivante :

colorscheme jellybeans

Conclusion

Ceci est un exemple de ce que l’on peut faire afin de transformer Vim en un environnement de développement agréable et performant pour le Python.

Olivier Munier

Depuis ma plus tendre enfance j'ai toujours été attiré par les domaines techniques et les appareils électroniques. Très vite je me suis intéressé à l'informatique et j'ai eu mon premier PC en 1992. Au début des années 2000, j'ai découvert Linux et le monde des logiciels libres et open source. Assez vite j'ai décidé de me spécialiser sur ce vaste monde afin de devenir un expert. Titulaire d'un master en Informatique, mes compétences couvrent un très large éventail, notamment l'administration système et réseau Linux, la virtualisation et la programmation C, Shell et surtout Python. Sur ce site je partage mes connaissances, réalisations et avis sur tout un tas de domaines mais particulièrement l'informatique, l'électronique et la geekitude.

2 pensées sur “Transformer Vim en IDE pour Python

  • 12 mai 2019 à 14 h 38 min
    Permalink

    Bonjour,
    Voici le problème que je rencontre lors de l’installation de YouCompleteMe après avoir saisi la commande : sudo python3 install.py

    Searching Python 3.7 libraries…
    ERROR: found static Python library (/usr/local/lib/python3.7/config-3.7m-x86_64-linux-gnu/libpython3.7m.a) but a dynamic one is required. You must use a Python compiled with the –enable-shared flag. If using pyenv, you need to run the command:
    export PYTHON_CONFIGURE_OPTS= »–enable-shared »
    before installing a Python version.
    sushy@DEBIAN:~/.vim/pack/git-plugins/

    Avec vous une idée pour me dépanner ?

    Répondre
    • 12 mai 2019 à 16 h 55 min
      Permalink

      Bonjour,

      C’est quelle version de python3.7 qui est installée ? j’ai l’impression que c’est la version minimale. Tu peux essayer de réinstaller python en faisant sudo apt update && sudo apt install python3 python3-dev

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *