Neovim va-t-il remplacer Vim ?

Lorsque Nicolas Engel m’a parlé de neovim, je n’ai pas eut l’occasion de tester étant donné que j’étais sur Fedora 20 et qu’aucun paquet n’avait été fourni. Mais depuis mon passage en Fedora 22, j’ai accès à Copr et donc à un build de neovim. Voilà mon avis: Whaouuu !

Début des hostilités: je passe à Fedoda 22 et je rage de voir le terminal “Terminator” ne pas me donner de notification quand une commande se termine en arrière plan. Résultat des courses je reviens à ce bon vieux “gnome-terminal” qui, finalement, est pas si mal. Mais j’utilise Vim depuis des lustres, et j’adorais avoir un split de terminal pour avoir d’un coté l’éditeur, et de l’autre un terminal pour lancer une commande ou laisser les tests unitaires tourner.

Bref, je trouve un plugin pas dégueulasse: Conque - sérieusement, pour ceux qui ne veulent pas aller plus loin et passer à Neovim, utilisez ce plugin c’est tout bonnement génial.

Mais voilà, je me souvenais que neovim permettait directement d’avoir un terminal dans l’éditeur. Alors je retourne sur le projet Git et je vois que l’installation sur Fedora se fait en un rien de temps, et ce grâce à Copr.

Installation

Ça va aller vite:

sudo dnf copr enable dperson/neovim
sudo dnf install neovim

Et voilà… c’est tout!

Comme le spécifie la doc: https://copr.fedoraproject.org/coprs/dperson/neovim/ - vous pouvez lier votre “.vimrc” et votre “.vim” respectivement sur “.nvimrc” et “.nvim

Reste à installer les module python:

pip install --user neovim
pip3 install --user neovim

Comme ça on est tranquile pour les version de python 2.7.x et 3.x, les plugins vous diront merci plus tard.

Alors ça change quoi ?

Au premier regard, absolument rien. Mais alors rien !

Si, à la limite, la commande pour lancer neovim:

nvim

Vous avez un éditeur vim comme d’habitude, vous vous demandez presque pourquoi vous l’avez installé. Et puis vous tapez

:terminal

Et là, vous comprennez déjà que rien que pour ça vous allez adorer NeoVim.

Avoir un terminal dans nvim me sert absolument à tout, entre lancer des tests ou démarrer “Gdb”, en passant par un “htop” dans un coin… bref, plus besoin d’avoir un Terminator.

Truc qui me fait délier: lancer “mutt” sur le coté pour avoir les mails pendant que je code :) Et j’en passe, comme weechat par exemple. En bref tous ce qui se lance dans un terminal est accessible dans nvim. C’est un bonheur sans nom.

Puisque la touche “echap” est nécessaire pour certains logiciels dans le terminal, il a fallut changer de raccourci pour quitter le mode “term”. Pour reprendre la main et passer en mode “normal”, pressez CTRL+\ puis (rapidement) CTRL+n ou simplement maintenez la touche Control et pressez “\” puis “n”.

Pour ceux qui parle courament le vim: “<C-\><C-n>

Libre à vous de splitter les fenêtres, lancer des commandes, utiliser le mode “visual” pour copier des résultats de commandes dans un buffer, bref le pied. (Je rappelle la commande pour spliter: Control+W puis “s” ou Control+w puis “v” pour le split vertical)

Quoi d’autre…

Autre petit truc que j’adore, lors d’une recherche en presant “/”, le buffer scrolle durant la frappe de recherche. C’est tout bête mais c’est très confortable.

Pour le reste je vous laisse taper:

:help vim-differences

On notera des options par défaut (comme le mode “mouse=a”) et les options de compatibilité avec les anciennes versions de “vi” supprimées. En clair, on fait table rase.

Neovim est aussi plus léger, il a toutes les features compilées (alors que vim doit être compilé en mode “HUGE” pour avoir accès à toutes les features) et il promet aussi pour la suite: une meilleure intégration dans n’importe quel GUI, support de pleins de langages, plus rapide, plus proche des dernières configurations, bref NeoVim donne envie.

Attention toutefois, NeoVim n’est pas “stable” (perso j’ai eu aucun crash pour le moment, et pourtant j’ai une foule de plugins, je code en Go dedans, j’ai un tagbar et un nerdtree en boucle…), et rien ne dit que la version Copr maintenue par “dperson” soit viable longtemps. Bref, vous prennez vos responsabilités en le testant.

Alors, le verdict ?

Digne successeur de Vim, ou plutôt “nouvelle génération” de vim, je pense que NeoVim va faire du bruit dans quelques mois. Le projet est développé depuis longue date et les commits sont réguliers, donc la communauté est active et le projet se stabilise. Il est clair que Vim (déjà lui-même un remplaçant de “vi”) commence à vieillir. Un nouveau souffle avec ce projet va certainement donner de nouvelles perspectives.

En tout cas, pour moi, c’est “alias vim=nvim

comments powered by Disqus