La version de vim par défaut est sympathique, mais ca l’est tout autant avec une configuration aux petits oignons !
On est en 2020, est en 2020 python 2 est mort. Repose en paix partenaire !
Cependant, par défaut, vim n’est pas configuré avec python 3. Alors compilons le avec si vous le voulez bien.

Dans un premier temps

Tu peux installer les paquets nécessaires en fonction des tes envies. Et si as déjà vim sur ta machine c’est tout pareil en fonction de tes envies; garder les deux ou désinstaller l’ancienne version.

Debian

$ apt install build-essential libncurses5-dev python3-dev

CentOS

$ yum install ncurses-devel python3-devel

curses c’est parce qu’on est pas à l’abris de faire un petit programme en C, globalement vous ajoutez le(s) langage(s) que vous utilisez, que ce soit du libperl-dev, ruby-dev ou que sais-je.

Téléchargeons la dernière version

$ git clone https://github.com/vim/vim.git
$ cd vim
$ git pull

Configuration

./configure --enable-python3interp=yes  --with-python3-config-dir=/usr/lib/python3.7/config-3.7m-x86_64-linux-gnu --enable-cscope=yes --with-features=huge --enable-multibyte=yes --enable-gui=no --enable-fail-if-missing

Dans l’ordre:
--enable-python3interp active la gestion de python 3 par vim
--with-python3-config-dir est le chemin vers la conf de votre version de python

Par exemple ici avec python 3.7:
Conf Debian: /usr/lib/python3.7/config-3.7m-x86_64-linux-gnu
Conf CentOS: /usr/lib64/python3.7/config-3.7m-x86_64-linux-gnu

--enable-cscope active la gestion du C
--with-features plusieurs variables sont possibles, voir ici.
--enable-multibyte on en a besoin pour éditer des fichiers de plus de 8 bits. Pour de l’unicode et notre bon vieux utf-8 par exemple.
--enable-gui par défaut vim est ok pour fonctionner avec Qt et GTK+, si vous utilisez autre chose il faudra le préciser.
--enable-fail-if-missing permet d’arreter la configuration si une erreur est soulevée.

Si tu test de reconfigurer, tu peux vider ton cache avec un petit:

$ make distclean

Compilation

$ cd src
$ (sudo) make
$ sudo make install

Il se peut que tu aies besoin d’utiliser sudo pour la commande make

Check

C’est le moment de vérifier si tout s’est vraiment bien passé.

$ vim --version
ou
$ vim    # Puis dans vim, :version

Localiser

Si tu avais déjà un vim avant tout ce remue-ménage, je te laisse quelque commandes pour que tu puisses gérer l’ancienne et la nouvelle version.

  • Chopper le chemin de ton ancien vim
    $ whereis vim
    
  • Créer un lien symbolique
    $ ln -s source_file target_file
    
  • Créer un alias dans ton .bashrc / .zshrc ou autre
    $ echo 'export vim2=chemin/vers/ton/src/vim' >> ~/.bashrc
    $ source ~/.bashrc
    $ vim2
    

Problème

Il se peut que vim t’embete avec syntax.vim:

$ echo 'export VIMRUNTIME=~/chemin/vers/vim/runtime' >> ~/.bashrc

Si vous rencontrez des soucis, c’est avec plaisir que j’essayerais de vous aider ici ou sur twitter.