Revue des techniques de programmation en shell

Posté par  (site web personnel) . Édité par Benoît Sibaud, Nils Ratusznik, palm123, Nÿco, Yves Bourguignon et Pierre Jarillon. Modéré par Nils Ratusznik. Licence CC By‑SA.
114
22
sept.
2014
Ligne de commande

L'été est fini, c'est la rentrée ! Pour se remettre en forme, rien de tel qu'une revue des techniques de programmation en shell — ces techniques sont pour le shell de Bourne /bin/sh mais peuvent être utilisées avec les shells compatibles qui permettent parfois des solutions plus faciles.

GameShell, apprendre les rudiments du shell en s'amusant

Posté par  . Édité par claudex et Pierre Jarillon. Modéré par Pierre Jarillon. Licence CC By‑SA.
Étiquettes :
80
26
mar.
2021
Ligne de commande

Il y a 4 ans, j'ai pris en charge un nouveau cours intitulé « système d'exploitation » en première année de licence. Le programme est assez large, avec un peu d'architecture, un peu de système, et même un peu de réseau. Là dedans, je devais faire une introduction au shell. Le risque avec ce genre du truc, c'est de se retrouver avec un catalogue de commandes qui rebutera même les étudiants les plus motivés.

Et c'est comme ça qu'est né GameShell, ou gash pour les intimes. GameShell est un jeu où il faut entrer des commandes dans un shell (bash) pour valider des « missions ». Comme il n'y a pas eu de gros bug ces deux dernières années, je me dis que je pouvais en faire la pub. (Attention, il reste probablement plein de bugs. C'est juste que les étudiants ne sont pas encore tombés dessus !). Ça peut intéresser les gens qui veulent apprendre, ou enseigner les rudiments du shell.

Le code est disponible sur GitHub (promis, je changerais un de ces jours) avec une licence GPL : GameShell sur GitHub

N'hésitez pas à me faire des retours d'utilisation, des rapports de bugs, proposer des fonctionnalités, ajouter des missions, etc.
Si vous l'utilisez « en public », ça serait juste bien d'inclure un lien vers le dépôt et / ou mon nom.

GameShell est un jeu en ligne de commandes, où le joueur doit taper des commandes bash pour valider des « missions ».

Des alternatives à grep, ls et find

Posté par  (site web personnel) . Édité par Xavier Teyssier, Davy Defaud et palm123. Modéré par Xavier Teyssier. Licence CC By‑SA.
Étiquettes :
69
19
mar.
2018
Ligne de commande

Les outils en ligne de commande comme ls, grep et find existent depuis de nombreuses années et, même s’ils continuent de s’améliorer, il est parfois intéressant de regarder les alternatives. Je vais vous parler de ripgrep, exa et fd.

À la Croisée des Chemins: crossroad, environnement de cross-compilation

Posté par  (site web personnel, Mastodon) . Édité par ZeroHeure, Benoît Sibaud, palm123, Ontologia et patrick_g. Modéré par rootix. Licence CC By‑SA.
68
18
oct.
2013
Ligne de commande

Cross-compiler pour Windows sur une machine Linux est maintenant aussi simple que compiler pour Linux avec le fameux triptyque ./configure && make && make install. Crossroad fait référence à la fameuse chanson "Cross Road Blues" de Robert Johnson, une des références du blues que je joue régulièrement moi-même. La chanson raconterait comment Robert Johnson aurait rencontré le diable à un croisement de route. La légende populaire veut qu'il aurait alors vendu son âme au diable en échange de son extraordinaire don pour la musique. Je trouvais que c'était le nom parfait pour mon outil, me permettant de cross-compiler pour des environnements propriétaires. :-)

NdM : le film libre Crossroads la route du blues vous en dira plus sur le génial Robert Johnson.

Quel terminal pour 2018 ?

Posté par  (site web personnel) . Édité par Davy Defaud, Benoît Sibaud et claudex. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
68
10
mar.
2018
Ligne de commande

Vous connaissez les terminaux, ces petites fenêtres le plus souvent noires où l’on tape des lignes de commande bizarres ? Eh bien, vous risquez d’être surpris : le choix du logiciel pour faire ça n’est pas aussi simple que ça en a l’air et des gens continuent de proposer de nouvelles alternatives. Cette dépêche vise à présenter rapidement quelques fonctionnalités intéressantes que les terminaux historiques ne géraient pas forcément et à présenter quelques terminaux.

Coloriser des flux de texte avec colout

Posté par  (site web personnel, Mastodon) . Édité par Benoît Sibaud. Modéré par claudex. Licence CC By‑SA.
65
4
avr.
2013
Ligne de commande

Les réalisateurs de films policiers ne s'y trompent pas : lire des flux de textes en ligne de commande nécessite parfois le super pouvoir de lisibilité.

Bien que les outils GNU soient extrêmement pratiques pour manipuler des flux de texte, il en manquait un pour aider à mettre en valeur l'information importante, sans masquer l'accessoire. Par exemple pour faciliter la lecture de logs s'étendant sur plusieurs lignes ou pour détecter rapidement le numéro de ligne d'un fichier responsable d'une erreur de compilation.

Heureusement, grâce à la commande colout (aujourd'hui en version 1.0), vous pouvez maintenant très facilement coloriser colorer colorier mettre de la couleur là où vous le souhaitez dans votre ligne de commande.

Basiquement, colout s'utilise comme un filtre de flux de texte classique, généralement après un pipe, et mets en valeur les bouts de texte correspondant à une expression régulière avec une couleur et un style de votre choix :

    <flux de texte> | colout <expression régulière> [couleur [style]]

L'IHM de colout est pensée pour être simple tout en permettant des utilisations vraiment intéressantes, telles que le coloriage l'application des couleurs sur les groupes des expressions, l'utilisation de cartes de couleurs (mais si, vous savez, les couleurs de l'arc-en-ciel…), la coloration la mise en valeur de la syntaxe de code source, des thèmes automatiques et même l'application d'une couleur en fonction de la valeur d'un nombre.

Un point d'avancement sur Neovim

Posté par  (site web personnel) . Édité par bubar🦥 et Benoît Sibaud. Modéré par Pierre Jarillon. Licence CC By‑SA.
Étiquettes :
65
21
avr.
2015
Ligne de commande

Le logo de Neovim

Neovim est un éditeur de texte, issu d'un fork de Vim. Il vise à le rendre plus moderne. En particulier, faciliter le développement et l'utilisation de greffons, et permettre de l'intégrer plus facilement dans d'autres outils.

Le fork date d'un peu plus d'un an et le travail commence à payer. En plus d'un gros nettoyage de la base de code, les développeurs de Neovim ont mis en place un système de plugins, de greffons, qui peuvent désormais tourner à l'extérieur du processus principal et communiquer avec lui via msgpack. On peut également apprécier la possibilité de lancer un terminal à l'intérieur de Neovim, grâce à l'inclusion récente de la libvterm.

Mais pour accélérer le développement, Neovim a besoin de vous. Le développeur principal, @tarruda passe une partie de son temps sur Neovim et une autre partie à faire des missions en freelance pour gagner sa vie. Grâce à des dons, il pourrait diminuer le temps passé sur les missions, et ainsi passer plus de temps à faire vivre Neovim.

Personnellement, je suis un utilisateur comblé de Neovim depuis quelques mois. Bien que celui-ci soit toujours en version alpha, il est très stable et le passage de Vim à Neovim s'est fait sans aucun souci. Aussi, j'ai participé à l'appel à dons et vous encourage à faire de même pour promouvoir ce projet qui le mérite bien !

Présentation de The Log File Navigator

Posté par  (site web personnel) . Édité par Davy Defaud, Xavier Teyssier, Nils Ratusznik et ZeroHeure. Modéré par Xavier Teyssier. Licence CC By‑SA.
Étiquettes :
64
2
août
2018
Ligne de commande

The Log File Navigator, ou lnav en plus court, est un outil en ligne de commande pour afficher des journaux, sous licence BSD. Par rapport aux classiques cat, grep ou less, il propose quelques fonctionnalités supplémentaires :

  • il offre de la coloration syntaxique ;
  • il permet d’afficher plusieurs journaux en même temps, les lignes étant triées en fonction de la date et de l’heure à laquelle l’événement est survenu (c’est pratique pour corréler des informations entre plusieurs processus) ;
  • il offre différents modes d’affichage.

Comparaison critique de systèmes d'invite de commande

Posté par  (site web personnel, Mastodon) . Édité par Ysabeau 🧶 🧦 et gUI. Modéré par Ysabeau 🧶 🧦. Licence CC By‑SA.
60
17
nov.
2023
Ligne de commande

Cet article a été écrit à l’occasion de l’imminence de la sortie de la version 2.2 de Liquid Prompt et vous aurez l’occasion de pouvoir en discuter avec son auteur lors des journées Toulouse Capitole du Libre, qui proposera une conférence sur Liquid Prompt : repenser en profondeur le design du prompt shell.

TL;DR: résumé

Si vous utilisez la ligne de commande, vous gagneriez à utiliser un bon système d’invite de commande (« prompt ») au lieu de la configuration par défaut. Parmi les sept systèmes de prompt les plus connus, certains sont mieux conçus et d’autres prennent mieux en charge certaines fonctionnalités.

Mes principales conclusions sont les suivantes :

  • Si vous recherchez le système qui offre la meilleure expérience globale à l’utilisateur, vous devriez probablement utiliser Liquid Prompt.
  • Si la faible latence est plus importante pour vous que les fonctionnalités, vous devriez miser sur PowerLevel10k.
  • Si vous êtes un développeur qui jongle en permanence avec plusieurs jeux d’outils, Starship semble être la meilleure option pour vous.

Cet article est divisé en deux parties principales : la première introduit le sujet et présente les principales évaluations ; la deuxième partie entre dans les détails des designs et des fonctionnalités. Enfin, la conclusion donne des conseils sur le choix d’un prompt et propose quelques idées sur l’avenir des systèmes de prompts.

Offpunk 1.0 : un navigateur déconnecté pour le smolnet

Posté par  (site web personnel, Mastodon) . Édité par Ysabeau 🧶 🧦, ted et Benoît Sibaud. Modéré par Ysabeau 🧶 🧦. Licence CC By‑SA.
Étiquettes :
59
21
mar.
2022
Ligne de commande

Alors que sort la version audiolivre de mon roman cyberpunk Printeurs, dont il a été question sur ce site, j’ai le plaisir de vous annoncer une autre sortie très punk, la version 1.0 du logiciel Offpunk, un navigateur optimisé pour la navigation déconnectée sur le « smolnet », incluant les protocoles https, gemini, gopher et spartan.

Offpunk est un logiciel écrit en Python et utilisable entièrement en ligne de commande : il s’affiche dans un terminal et n’utilise ni souris ni raccourci clavier. Chaque action nécessite une commande. Le rendu des pages et des images se fait dans l’afficheur « less » (en utilisant chafa pour les images).

Mosh, the Mobile Shell

Posté par  . Édité par Nÿco, baud123 et claudex. Modéré par NeoX. Licence CC By‑SA.
58
16
avr.
2012
Ligne de commande

Mosh est une application permettant d'ouvrir une session à distance et sécurisée sur une machine de type Unix.

À la différence du célèbre et incoutournable SSH, Mosh offre la possibilité de maintenir une session ouverte tout en étant connecté par intermittence (roaming IP), d'où son nom : Mobile Shell.
Ce dernier est une alternative au couple SSH+Screen.

Fonctionnement

Mosh utilise SSH pour se connecter sur l'hôte distant. Une fois la connexion établie, un processus mosh-server prend le relais sur un port UDP en ouvrant une nouvelle session sécurisée et ferme la session SSH. Le client communique alors directement avec mosh-server. Avantage de la solution ? Si le client change d'adresse IP et qu'il retente une connexion à travers SSH, mosh-server reprend le dialogue avec la nouvelle adresse IP.

Mosh utilise aussi une approche différente de SSH pour la gestion de l'affichage du terminal client. Mosh n'attend pas une réponse de l'hôte distant pour afficher ce qui a été saisi par l'utilisateur. Le client et le serveur possèdent chacun un instantané (snapshot) de l'écran à afficher. La solution de Mosh repose sur la synchronisation de ces deux états. Ce qui permet à l'utilisateur de réduire les impressions de latence si la qualité de sa connexion est mauvaise.

Autres points importants :

  • Mosh n'a pas besoin des droits super-utilisateur pour s'exécuter.
  • Mosh impose un environnement en UTF-8 et ne gère pas d'autres encodages.
  • Mosh ne gère pas encore le X-forwarding, ni le Port-forwarding.

Quelle palette de couleurs pour vos outils ?

Posté par  (site web personnel) . Édité par Davy Defaud. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes :
57
12
mai
2020
Ligne de commande

Je passe pas mal de temps avec Neovim et des lignes de commande dans un un terminal. J’apprécie d’avoir des couleurs agréables et homogènes. Mais comme c’est quelque chose de très personnel, je vais vous présenter plusieurs alternatives pour choisir une palette de couleurs.

Une capture d’écran avec le thème Nord d’un terminal avec tmux

htop atteint la version 1.0  !

Posté par  (site web personnel) . Édité par Davy Defaud, patrick_g et Nÿco. Modéré par Xavier Teyssier. Licence CC By‑SA.
Étiquettes :
56
22
nov.
2011
Ligne de commande

htop est un outil en mode texte qui permet d’afficher les processus qui tournent et les informations associées à ces processus, comme leur utilisation du temps processeur ou leur consommation mémoire. htop est publié sous licence GPL et vient d’atteindre la symbolique version 1.0.

htop est un clone de top, mais en mieux. Il permet par exemple :

  • d’avoir un défilement (scroll) horizontal et vertical ;
  • de tuer un processus sans avoir à entrer à la main son identifiant PID ;
  • de démarrer plus rapidement ;
  • d’afficher des barres colorées pour indiquer l’utilisation processeur globale et la consommation mémoire.

Bref, je vous encourage à essayer htop, c’est un très bon remplaçant à top.

Kakoune, un éditeur de texte qui a du caractère

Posté par  (site web personnel) . Édité par Lucas, mawww, Anonyme, Benoît Sibaud, patrick_g et Thomas Debesse. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
55
11
nov.
2015
Ligne de commande

Kakoune est un éditeur de texte en console qui gagne a être connu. Cette dépêche a pour but de le faire découvrir à plus de monde.

NdM : Le logiciel est placé par ses auteurs dans le domaine public.

Bogue, fonctionnalité, mauvais usage ? Un cas pratique

Posté par  (site web personnel) . Édité par Davy Defaud, David Marec, ZeroHeure et bubar🦥. Modéré par bubar🦥. Licence CC By‑SA.
Étiquettes :
52
31
mar.
2019
Ligne de commande

Dans la rétrospective LinuxFr.org de la première quinzaine de mars 2019, il était question de la réponse surprenante de diff : « Le fichier /var/lib/lxc/alpha/rootfs/dev/full est un fichier spécial‐caractères alors que le fichier /var/lib/lxc/beta/rootfs/dev/full est un fichier spécial‐caractères. »

Les choses auraient pu en rester là. Mais quand même, ça reste une bonne occasion de se demander si c’est un bogue, une fonctionnalité ou un mauvais usage, non ? Jouons un peu avec ce cas pratique.

GameShell, le retour

Posté par  . Édité par palm123, Benoît Sibaud et bobble bubble. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
52
26
juin
2021
Ligne de commande

Il y a quelques mois, je postais une dépêche décrivant “GameShell”, un jeu que j’avais développé pour enseigner les bases de la ligne de commandes. Cette dépêche avait provoqué discussions, corrections de bugs et suggestions intéressantes.

Trois mois et quelques centaines de commits plus tard, je me permets de faire une petite mise à jour.

Globalement (mais je suis un peu biaisé), le GameShell d’aujourd’hui est nettement mieux que le GameShell d’hier. Ceci a un coût : la taille d’une archive GameShell a été multipliée par 3. On est passé de 44kio à 140kio !
Je ne sais pas comment on traduit “bloat” en français (“boursouflage” ?), mais pour le moment, ça ne m’empêche pas de dormir !

La version précédente avait été testée par plusieurs générations d’étudiants, parfois très inventifs. Alors n’hésitez pas à vous mettre dans la peau d’un étudiant en faisant une partie avant de me faire un retour.
Je suis preneur de toute critique, suggestion, rapport de bug, ticket, contribution et j’en passe.

Si certains veulent créer des missions, je pourrais faire une petite description de l’architecture d’une mission type. Ce n’est pas très compliqué, et une année, j’ai même eu un étudiant qui en a ajouté une comme « question bonus » !

Trois outils pour développeur : MailHog, Tokei et Pandoc

Posté par  (site web personnel) . Édité par Davy Defaud, patrick_g et Nils Ratusznik. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
51
9
avr.
2018
Ligne de commande

Dans cette dépêche, je vais vous présenter trois outils que j’utilise de temps en temps et qui pourraient servir à d’autres développeurs :

  • MailHog permet d’attraper des courriels pour les examiner ;
  • Tokei compte les lignes de code d’un projet ;
  • Pandoc est un couteau suisse pour manipuler des fichiers et les transformer d’un langage de balisage à un autre.

ack 1.96 — mieux que grep

Posté par  (site web personnel) . Modéré par Xavier Teyssier. Licence CC By‑SA.
48
20
sept.
2011
Ligne de commande

Ack est un outil qui permet de rechercher du texte à l’intérieur de fichiers. C’est donc un clone de grep avec quelques améliorations notables. Voici donc dix raisons de passer à ack si vous utilisez grep :

  1. ack est très rapide, car il ne recherche que ce que vous voulez chercher ;
  2. il recherche récursivement par défaut ;
  3. il ignore les trucs inutiles, comme les répertoires utilisés par les [VCS], les fichiers de sauvegarde (« foo~ » et « #foo# »), les binaires, etc. ;
  4. vous pouvez spécifier simplement le type de fichiers à rechercher, comme « --perl » ou « --nohtml » ;
  5. la coloration syntaxique des résultats est là par défaut ;
  6. vous pouvez utiliser les expressions régulières de Perl, pas juste le sous‐ensemble de GNU ;
  7. l’apprentissage d’ack est très simple, car il reprend les mêmes options en ligne de commande que grep (« -c », « -l », « -w », etc.) ;
  8. il est possible d’avoir des options par défaut dans un fichier « ~/.ackrc » ;
  9. la commande fait 25 % de caractères en moins à taper ;
  10. en fait, c’est même 50 % de gagné par rapport à « grep -r ».

La version 1.96 d’ack est sortie dimanche et apporte quelques améliorations notables :

  • les fichiers JavaScript « minifiés » sont ignorés par défaut ;
  • le langage Groovy est supporté (extensions : « .groovy », « .gtmpl », « .gpp », « .grunit ») ;
  • les fichiers Perl et Lua sont mieux détectés.

Note : pour installer ack sur Debian et Ubuntu, il faut faire un « apt-get install ack-grep » (et pas juste « ack »). En revanche sous Archlinux, un « pacman -S ack » sera suffisant. Les autres distributions (Fedora, Gentoo) utilisent également le simple nom « ack »).

Lidecli : Un outil en ligne de commande pour interagir avec les environnements de bureau

Posté par  . Édité par Julien Jorge, Benoît Sibaud et Ysabeau 🧶 🧦. Modéré par Ysabeau 🧶 🧦. Licence CC By‑SA.
Étiquettes :
48
13
juil.
2023
Ligne de commande

Lidecli - abréviation de Linux Desktop CLI - est un wrapper libre (MIT) développé en Python permettant de scripter plus facilement le positionnement de vos fenêtres quel que soit votre environnement de bureau. Habituellement, scripter ou automatiser le positionnement des fenêtres nécessite :

  • l’utilisation d’outils bien connus (wmctrl, xprop, qdbus, xrandr, etc.),
  • ou, pour certains environnements - du code (LUA pour AwesomeWM par exemple).

En d’autres termes, il n’existe pas vraiment de moyens « simples » permettant de scripter à sa guise son environnement. Lidecli agit comme un wrapper qui simplifie grandement cette tache.

Lidecli

Trois utilitaires : Delta, Dust et Watchexec

Posté par  (site web personnel) . Édité par Xavier Teyssier, Benoît Sibaud et Davy Defaud. Modéré par Xavier Teyssier. Licence CC By‑SA.
Étiquettes :
47
11
mai
2020
Ligne de commande

J’avais présenté, il y a quelque temps, trois utilitaires écrits en Rust pour remplacer grep, ls et find (à savoir ripgrep, exa et fd). Cette dépêche est l’occasion de présenter trois nouveaux utilitaires également écrits en Rust : delta, dust et watchexec.

Bash Argsparse : mieux gérer sa ligne de commande dans ses scripts.

Posté par  (site web personnel) . Édité par Xavier Teyssier, Benoît Sibaud et ZeroHeure. Modéré par claudex. Licence CC By‑SA.
46
10
oct.
2013
Ligne de commande

Je vous présente une bibliothèque écrite en Shell : bash-argsparse

Bash-argsparse permet une gestion des options de la ligne de commande en plus haut niveau qu'un simple getopt, un peu comme le module argparse de python.

Parmi la liste des fonctionnalités, on trouve :

  • la génération automatique du --help ;
  • la vérification des entrées utilisateurs, soit suivant des énumérations, soit suivant des formats pré-établis (nombres entiers, adresses IP, etc.), soit via des résultats de fonctions définies par le développeur du script ;
  • l'exclusion mutuelle de plusieurs options ;
  • le cumul de valeur par répétition d'une option ;
  • et plein d'aut'trucs.

Sortie de Fim 1.0.2, qui vérifie l'intégrité de vos fichiers

Posté par  . Édité par Benoît Sibaud et Pierre Jarillon. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
44
8
sept.
2015
Ligne de commande

Fim (File Integrity Manager) est un gestionnaire de fichiers libre (licence GPLv3) qui permet de gérer beaucoup de fichiers de n'importe quelle taille. Il peut par exemple, gérer des photos ou des vidéos. Il est capable de gérer des centaines de milliers de fichiers occupant une taille totale de plusieurs téraoctets. Il peut détecter les fichiers dupliqués et aider à les effacer.

Fim

Bash 5 : une introduction

Posté par  . Édité par Ysabeau 🧶 🧦, Gil Cot ✔, Anonyme, Benoît Sibaud et palm123. Modéré par Ysabeau 🧶 🧦. Licence CC By‑SA.
44
5
août
2022
Ligne de commande

La troisième version du document « Introduction à la programmation en Bash » (IUT de Rodez) vient de paraître. Elle est principalement destinée aux étudiants de niveau Licence.

Petit éventail des outils de construction (« builder ») libres

Posté par  . Modéré par patrick_g. Licence CC By‑SA.
43
5
sept.
2011
Ligne de commande

Je vous propose dans cette dépêche de revenir sur la panoplie d'outils de construction qui s'offre à nous (c'est à dire les outils permettant d'automatiser les étapes de préprocessing, compilation, éditions des liens, etc).
Je ne cherche pas à faire un comparatif, mais juste à les décrire pour en faire ressortir les avantages et inconvénients ainsi que les cas d'utilisation. Cette dépêche peut être vue comme un état de l'art allégé des outils de construction libres.

Je tiens à remercier les contributeurs de cette dépêche :

  • GeneralZod
  • tiennou
  • NedFlanders
  • claudex

Ce sont eux qui ont écrit la majeure partie de cette dépêche et qui l'ont améliorée et complétée grâce à leurs connaissances et au temps qu'ils y ont consacré.

Cette dépêche a pour objectif de faire découvrir ou redécouvrir des outils de constructions. Si vous en connaissez d'autres n'hésitez pas à en parler en commentaire.

Vim fête son 20e anniversaire

Posté par  (site web personnel) . Modéré par rootix. Licence CC By‑SA.
Étiquettes :
43
3
nov.
2011
Ligne de commande

Vim, le célèbre éditeur de texte vient de fêter son 20e anniversaire. C’est, en effet, le 2 novembre 1991 que Bram Moolenaar a publié la première version de Vim. C’était alors un clone de vi pour Amiga. Toutefois, contrairement à vi, c’est un logiciel libre. Il a pu ainsi être porté rapidement sur d’autres environnements et devenir l’éditeur de référence de nombreux développeurs.

Au fil des ans, de nombreuses versions se sont succédées (la version actuelle est la 7.3), mais son auteur a gardé le principe que Vim doit rester un éditeur de texte et être le plus possible au service de l’utilisateur.

Profitons‐en pour rappeler que si Vim est un logiciel libre publié sous une licence compatible avec la GPL, ses utilisateurs sont encouragés à faire un don à ICCF Holland, une association créée par Bram Moolenaar pour aider les enfants en Ouganda.

Et pour célébrer les 20 ans de Vim, vous êtes encouragés à poster en commentaire toutes les astuces et anecdotes que vous avez sur Vim.