Présentation

Le site hjkl.duy.run propose un petit jeu de navigateur dont l’objectif est de faire pratiquer les commandes du célèbre éditeur modal Vim. L’interface se présente comme un éditeur texte fonctionnant entièrement dans le navigateur, où chaque niveau correspond à une série d’opérations Vim à réaliser sur du texte cible. Le service est gratuit, ne requiert aucune création de compte et ne conserve aucune donnée utilisateur, ce qui le rend immédiatement exploitable en classe ou en auto‑formation.

Mécanique du jeu

Le joueur sélectionne les compétences à travailler parmi une liste explicite : correction de fautes typographiques (l), changement de mot (bciw), suppression de ligne (kdd), découpage de phrase (vh ld), déplacement de phrase (ddj kp), insertion de texte (i aI Ao O), remplacement de caractère (r), copie (yy ywp P), utilisation de comptes (3w2dd 3x3p), recherche dans la ligne (f Ft T; ,), recherche globale (?n N), manipulation d’objets texte (ci" ci' ci( diw daw), correspondance de délimiteurs (%), navigation entre fichiers (12G gg G ctrl‑o ctrl‑i) et gestion de marques (ma' `a). Chaque compétence déclenche deux éditions guidées, deux éditions proposées et deux éditions libres ; toute modification valide qui aboutit au texte cible est acceptée. Le mode Normal expose la commande :help pour consulter la documentation en ligne.

Architecture technique

Le jeu repose sur un éditeur Vim implémenté en JavaScript et exécuté côté client. Aucun appel serveur n’est nécessaire pour valider les actions : le texte cible et les règles de validation sont embarqués dans le bundle JavaScript, ce qui explique l’affirmation « Free, no account, nothing stored ». Cette approche garantit une latence nulle et une confidentialité totale, mais impose que le navigateur supporte pleinement le clavier physique, d’où la contrainte « Requires a desktop browser with a physical keyboard ». Le choix d’une implémentation purement front‑end évite les coûts d’infrastructure, mais limite les possibilités d’extension, comme la sauvegarde de progrès ou la synchronisation multi‑appareils.

Limites et perspectives

Le principal point faible réside dans l’absence de persistance : les sessions s’éteignent dès que la page est fermée, ce qui empêche le suivi longitudinal de l’apprentissage. De plus, la dépendance à un clavier physique exclut les utilisateurs de tablettes ou de smartphones, réduisant ainsi la portée éducative. Sur le plan fonctionnel, le jeu ne couvre qu’une sélection de commandes de base et intermédiaires ; les fonctionnalités avancées de Vim (macros, registers, scripting) restent hors de portée. Enfin, l’absence de serveur rend difficile l’ajout de nouvelles leçons dynamiques ou la collecte de métriques d’usage, ce qui pourrait être résolu en introduisant un backend léger (par exemple une API REST) tout en conservant l’option « offline » pour les environnements à faible connectivité.