Aller au contenu

Vim

Description

Vim/Neovim est un éditeur de code. Il est utilisé par 1/4 des développeurs de la planète (voir le Stackoverflow dev survey (2024: Vim 21%, Neovim 12%)

Son intérêt principal provient de son mode "commande", qui permet d'effectuer des opérations complexes en un minimum de touches. Il s'agit également d'un des rares éditeurs de code - avec Emacs et VS Code - capable de proposer une édition intelligente (coloration, indentation, complétion, ...) pour la quasi-totalité des langages de programmation.

Son deuxième interêt est le fonctionnement en terminal. Dans l'informatique moderne (Cloud, Centre de Calcul), vous devez modifier du code à distance. Un terminal texte et ssh sont les outils omniprésents.

Pourquoi VIM/Neovim ?

Vim nécessite un temps d'apprentissage important et un "minimum" de configuration avant d'être utilisable. Neovim permet d'avoir une configuration de base plus complète et une configuration avancée plus simple. Il est légitime de se demander pourquoi réapprendre à utiliser un éditeur de code (taper :w pour sauvegarder alors qu'on est habitué au CTRL+S peut sembler une perte de temps, à priori).

La réponse est simple : gagner en efficacité. Il est certains que dans vos premières semaines d'utilisation de Vim/Neovim, vous aurez l'impression de mouliner et de perdre du temps à switcher en permanence entre mode commande et édition, mais une fois la dizaine de commandes de base connues, à vous le code productif ! (Des exemples de la puissance de VIM sont disponibles dans la suite...)

De plus : il est tout à fait possible d'utiliser les commandes "normales" (CTRL+S, CTRL+C/CTRL+V, ...) dans VIM. Ca n'est bien sûr pas recommandé, mais c'est bien pratique dans les premières semaines (mois ?) d'utilisation. Un fichier de configuration .vimrc "n00b-proof" est disponible dans la suite : utilisez-le dans vos premières semaines en tentant de basculer de plus en plus vers les commandes de base de VIM...

Vim est également l'un des rares éditeurs à fonctionner aussi bien dans un shell (comme nano) que dans une interface graphique avancée (via gvim), ce qui le rend utilisable dans toutes les situations.

Autres avantages de VIM, en vrac : léger, souris fonctionnelle lors d'une édition en ligne de commande (contrairement à nano ou la plupart des éditeurs fonctionnant dans un shell), utilisable au sein de la plupart des grands IDE (eclipse, VS Code, ...), disponible partout (même quand on pirate un TX en root, c'est dire !), édition de fichier à distance en ssh, ...

VIM sucks ! VS Code powwwa !

Je vois d'ici les fans de VS Code bondir et me reprocher de faire la pub d'un éditeur antique, sans fonctions de refactoring avancé, sans compilation inline, etc.

C'est oublié que VS Code ne fait rien lui-même. Il utilise les services d'autres logiciels. La plupart de ce que vous voyez est gèré au travers d'un protocole nommé LSP, inventé par Microsoft pour Visual Studio (l'ancètre de VS Code). LSP est un standard ouvert. Neovim parle nativement LSP, donc ces fonctionnalités sont là aussi.

La puissance de VIM ne vient pas du logiciel en lui-même, mais de ses "key bindings" et de son mode commande ! Il est possible d'utiliser ce mode commande dans Visual Studio, Eclipse, Firefox ... avec une configuration ou des plugins adaptés ! Et là c'est le must : non seulement vous êtes dans l'environnement de travail moderne, mais en plus vous utilisez le rapid-tapage productif de Vim. Apprendre les quelques commandes de VIM n'est pas perdu !

Documentation