Neovim va-t-il remplacer Vim ?

06/07/2015

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

Ça peut vous intéresser aussi


vim est un IDE PHP

Après pas mal de temps passé sur Eclipse, la lourdeur ...


Astuce vim

Toujours accroc à l’outil de travail le plus puissant ...


Atom.io, l'IDE qui me donne presque envie de me passer de vim

Atom.io est un IDE multiplateforme, libre, pratique et modulaire....


Développer avec Angular 2, Vim et Docker

Angular 2 commence à faire des émules. C’est un ...

Merci de m'aider à financer mes services

Si vous avez apprécié cet article, je vous serai reconnaissant de m'aider à me payer une petite bière :)

Si vous voulez en savoir plus sur l'utilisation de flattr sur mon blog, lisez cette page: Ayez pitié de moi

Commentaires

Ajouter un commentaire

Metal3d - 08/07/2015

Merci à toi, pour la citation c’est normal puisque c’est un de tes posts qui m’a donné cet information :)

Oui c’est stable, très, mais je viens de me prendre un petit bug dans la poire (rien de grave mais NERDTree me mettait un menu en boucle… j’ai dut me battre avec la touche Echap pendant 15 secondes…). Mais clairement, on est pas loin d’un resultat viable. Encore une fois, c’est surtout le terminal intégré qui me rend un service énorme (je lance gulp test, des commandes pour php, Gdb avec Go, ou simplement les commandes git…)

Donc merci à toi pour l’information :)

Nicolas - 08/07/2015

Merci pour la citation :) Je suis également un utilisateur depuis le début de nvim et franchement c’est hyper stable. L’équipe de développement est au taquet. Si vous voulez les aider à accélèrer les développement, ça se passe ici : https://salt.bountysource.com/teams/neovim

Ajouter un commentaire

(*) Votre e-mail ne sera ni revendu, ni rendu public, ni utilisé pour vous proposer des mails commerciaux. Il n'est utilisé que pour vous contacter en cas de souci avec le contenu du commentaire, ou pour vous prévenir d'un nouveau commentaire si vous avez coché la case prévue à cet effet.