Vim en moteur de slide - Vroom

Si vous suivez un peu mon blog, vous connaissez mon adoration pour le terminal de commande, vim et tout outil fonctionnant en mode console. J'ai toujours trouvé plus clair ce fonctionnement que de passer par des outils graphiques pour la moindre action. Aujourd'hui, c'est un outil de présentation (un slide si vous préférez) que j'ai découvert. Ça va vite, c'est pratique, c'est fonctionnel et ça marche avec Vim... En clair, ça a tout pour me plaire. Laissez-moi vous présenter "vroom"

Vroom est un package Perl installable aisément avec cpan. Il est fourni avec un exécutable qui va vous permettre de créer rapidement un slide fonctionnant en mode console. Ça peut paraitre fou de faire un slide en mode console, et pourtant l'intérêt est là. Car en ayant simplement du texte vous vous forcez à rendre "lisible" le slide.

Il est clair que ce genre de slide est plutôt ciblé pour les présentations de technologies de développement. Vroom a par ailleurs la possibilité d'exécuter du code contenu dans un slide, ce qui vous permet de montrer un petit bout de code et de l'exécuter afin de présenter le résultat.

Quoiqu'il en soit, commençons par l'installer.

Je vous l'ai dit, Vroom est un package Perl. De ce fait, on utilise CPAN pour installer le paquet:

su -c "cpan install Vroom"

Acceptez toutes les questions proposées à l'installation. En quelques secondes vous allez avoir l'outil installé sur votre poste.

Vous pouvez maintenant créer un répertoire quelque part, ici j'utiliserai "~/slidetuto/" pour des raisons pratiques. La suite logique est la suivante:

  • on créer un répertoire pour la présentation
  • on génère un template de slide
  • on édite le slide, on ajoute des entrées, on configure un peu...
  • on affiche le slide

Mais avant tout, vous devez modifier un fichier qui va permettre à Vim de lire une configuration spécifique qui sera créée par Vroom dans votre répertoire de slide. Ouvrez le fichier "~/.vimrc" et ajoutez quelque part (à la fin du fichier par exemple):

" for vroom
set exrc

Voilà, maintenant on y va... On commence par créer un template:

mkdir ~/slidetuto/
cd ~/slidetuto/
vroom -new

Un fichier est alors créé: "slides.vroom". C'est le fichier qui va avoir tout le contenu. Il y a pas mal de commentaires dans ce template. Pour le moment, on ne va pas le modifier et simplement lancer le slide:

vroom -vroom slides.vroom

Vim se lance, et le premier slide apparait. Pressez la touche Espace et vous passez au second slide, pressez une nouvelle fois Espace et vous voyez des lignes apparaitre au fur et à mesure. Arrivé au slide 5 vous allez voir un bout de code Perl. Pressez alors la séquence "RR" (Shift R R) et voilà le code exécuté.

Vous pouvez revenir en arrière avec la touche Backspace (la touche d'effacement).

Bref, arrivé à la fin du slide, vous pouvez quitter en pressant QQ (encore une fois, avec la touche Maj enfoncée).

Si vous regardez dans le répertoire, vous voyez une série de fichiers qui a été générée. En fait, Vroom fait simplement une ouverture dans l'ordre de fichier, et passe de buffer en buffer via un map de commande (Espace mappé en ":n" pour passer au buffer suivant). C'est bête comme choux, mais ça marche.

Vroom

Regardons le fichier slides.vrooms.

En haut, une partie sert à la configuration du slide. Vous pouvez ici surcharger un comportement de vim (par exemple, pour ma part, je dois forcer "set nonumber" pour ne pas avoir de numéro de ligne) ou encore forcer les dimensions de slide. Une option intéressante est justement de permettre le calcul automatique de la taille en fonction du terminal. Il suffit de décommenter "auto_size: 1" et le tour est joué.

Du coup, vous pouvez changer la taille de police de votre terminal pour la rendre plus lisible sur un rétroprojecteur, et tout va se caller correctement.

Ensuite, chaque slide est séparé par 4 tirets sur une ligne "". Cette ligne peut aussi permettre de spécialiser un slide, par exemple vous voyez dans le template de base qu'un slide est utilisé pour lancer du Perl (et avoir la coloration syntaxique). Les slides de code permettent d'utiliser Perl, PHP, Python, Sh, Haskell, et quelques autres...

Un double égal (==) permet de définir le titre (qui sera centré). Et si une ligne commence par "+" alors elle n'apparaitra qu'après avoir pressé Espace.

C'est simple... et ça fonctionne.

Pour ceux qui comme moi avez déjà un .vimrc fourni, et qui vous demande d'avoir une configuration forcée, voici comment faire.

Dans la partie de configuration, en haut, ajoutez simplement:

vimrc: |
    set nonumber

Ou tout autres options dont vous avez besoin.

Il est possible d'exporter votre slide en HTML, en texte brut, et il existe même un bindings pour envoyer vos slides sur github.

Le seul défaut que j'ai trouvé est que si vous vous trompez dans la configuration de votre slide, la commande "vroom -vroom slides.vroom" ne vous donne aucune information... mais je pense que cela va évoluer.

Voilà, j'ai tout simplement trouvé ce système intéressant, je m'en sers de plus en plus pour faire des vidéos didacticiels, et je pense que vous pouvez avoir un intérêt à l'utiliser.