Pourquoi j’utilise vim
Désolé d’avance, ça va être plus technique que le billet précédent : arrêtez vous là si vous n’êtes pas friands de détails de geek.
Qu’est-ce que vim ?
Pour se mettre dans le contexte : un éditeur de fichiers. Plus exactement un programme qui remonte à loin et marche vraiment bien si vous ne voulez pas toucher votre souris. Ça fonctionne même dans une console comme l’interface n’est pratiquement que du texte.
La page d’accueil du projet est ici : https://www.vim.org/
Il y a beaucoup d’éditeurs de texte, j’en ai utilisé quelques uns : Emacs, VSCode, neovim, IntelliJ, Eclipse, nano et même Notepad++. Mais vim est celui que fonctionne vraiment bien pour moi.
Pourquoi je l’utilise et l’adore
Quand j’ai découvert Linux, vers 1997, je n’ai pas réussi à avoir un
environnement graphique opérationnel, X11 était difficile à configurer. Le seul
éditeur de texte que ma mère a trouvé par défaut était vi. J’ai été plutôt déçu
quand elle m’a expliqué ce que je devais taper pour éditer mon fichier
XF86Config
. Et en plus je ne pouvais pas utiliser la souris. Ne parlons pas
non plus de quitter vi !
Faisons un bon en avant de quelques années et là j’ai pris plaisir à utiliser
d’autres distributions GNU/Linux. Cette fois j’ai tenté d’apprendre quelques
commandes et ça a pu me faire gagner du temps pour corriger des petits
problèmes. Quand j’ai commencé à bosser, tous les UNIX sur lesquels je suis
intervenu étaient équipés de cet éditeur. Je devais apprendre à l’utiliser
mieux. La documentation est bonne, on peut commencer par vimtutor
et il y a
aussi la commande intégrée :help
.
En 2015, j’ai tenté d’améliorer ma frappe au clavier et j’ai changé de disposition (bépo). Ça a été un bon moment pour revoir mon utilisation de vim. J’ai lu un paquet d’articles et de documentation pour m’améliorer. J’ai découvert le mode visuel bloc et l’auto complétion en mode insertion. Je n’avais même pas imaginé ce genre de fonctionnalités dans cet éditeur.
Configuration
Les paramètres par défaut peuvent varier, ça fluctue en fonction de la
distribution Linux. Dans mon cas, pour les contextes d’utilisation de l’éditeur,
c’est du Debian GNU/Linux. Même entre les versions on peut avoir des surprises
comme le réglage de la souris
('mouse'
).
Voici quelques paramètres que j’apprécie sur mon poste de travail, dans le
fichier ~/.vim/vimrc
:
set list listchars=nbsp:⎵,eol:↲
set number
set smartindent
set textwidth=80
:filetype plugin indent on
Comme je me suis mis à utiliser l’espace insécable, je voulais les voir. Et autrement rien de très spécial, c’est presque tout.
Pour ce qui concerne les choses spécifiques à des formats, j’utilise les
capacités de surcharge de plug-in de type
(ftplugin-overrule
).
Étant utilisateur de mutt
, j’aime bien avoir quelques options, mais juste pou
cet usage. Ça me donne un fichier ~/.vim/after/ftplugin/mail.vim
avec ce
contenu :
set linebreak
set formatoptions+=w
set number
set spell
set spelllang=fr,en
Je n’ai pas envie de rentrer dans les détails de tous ces paramètres, si vous
voulez plus d’infos, lisez le manuel :
:help
dans vim
.
Je n’utilise pas de plug-ins additionnels et j’essaie de connaître, ou au moins de savoir, les fonctionnalités qui existent. En tant qu’ingénieur de production/DevOps, dans toutes les circonstances, dans le milieu de la nuit sur une intervention par exemple, je sais que je vais devoir l’utiliser. Je n’ai pas envie de dépendre d’une macro personnelle ou d’un réglage que je ne pourrais pas retrouver sur un des nombreux environnements (que je partage avec des collègues) puisque je n’ai pas pu le personnaliser ou préparer.
Au delà de l’éditeur
En tant qu’utilisateur de vim de longue date (près de 20 ans), de nombreuses combinaisons de touches me semblent logiques et naturelles. De temps en temps je recherche des applications cousines dans le milieu de l’open-source. Pour en lister quelques unes :
newsboat
comme lecteur de flux RSS ;mutt
comme client mail avec vim pour écrire les messages ;tridactyl
pour surfer au clavier dans Firefox avec des raccourcis à la vim.
Pour terminer ce billet, j’ai envie de remercier platement Bram et tous les contributeurs du projet. Également, grand merci à vous tous qui partagez vos trucs et astuces où que ce soit. Parfois je vais trainer sur la communauté vim de Reddit et découvre des approches et commandes très intéressantes.