slides.vim, des slides dans votre terminal

Auteurice : Arthur Pons

Temps de lecture : ~3 minutes


slides.vim est un plugin vim permettant de rapidement et facilement créer des slides dans vim. Le rendu est en texte uniquement mais il est possible d’exécuter des commandes arbitraires au passage des slides de façon à ouvrir une image par exemple.

Pour des démos voir cette présentation de Marc Chantreux, celle-ci de moi et pour des exemples de sources le dépôt github ou ces sources d’une présentation que j’ai faite à des bibliothécaires.

Le dépôt se trouve ici et est assez bien documenté. Veuillez vous y référer pour en savoir plus. Je vais en traduire les parties que je trouve essentielles dans cet article.

Installation

Il faut d’abord installer le contenu du plugin hébergé sur ce dépôt github dans un dossier dans votre ~/.vim/pack, par exemple :

mkdir ~/.vim/pack/slides.vim/start
git clone -C !$ https://github.com/eiro/slides.vim.git

Si vous voulez en savoir plus sur les plugin, lire :help packs.

Il vous faut ensuite ajouter filetype plugin on dans votre .vimrc pour activer les plugins sur certaines extensions de fichiers. En l’occurence ici pour activer le plugin à l’ouverture de fichiers *.slides par défaut.

Utilisation

Les bases

Pour aller au plus simple, une fois un fichier .slides d’ouvert vous pouvez entrer en mode insertion et faire (" pour ajouter un titre de slide. Le plugin détectera automatiquement que c’est un titre et le stylera. Si vous mettez du contenu juste en dessous et ouvrez une seconde slide vous verrez que la première a automatiquement été masquée. Pour passer d’une slide à l’autre vous pouvez utiliser les touches “page up” et “page down” généralement situées proche des flèches du clavier.

Puisqu’il est souvent préférable de voir votre fichier texte plus d’une slide à la fois pour l’éditer vous pouvez lancer la commande :set fen! pour toutes les déplier. Refaire la même commande vous fera repasser en mode “présentation”.

A partir de là mettez votre terminal en plein écran, zoomé le et hop c’est parti pour votre présentation !

Mise en avant et exécution de commande

Si vous entourez un mot d’un espace insécable1 le mot sera mis en rouge.

Puisque vous êtes dans vim si vous voulez exécuter une commande lors de la presentation vous pouvez simplement l’écrire dans une slide, sélectionner le texte et le filtrer avec :mouvement!filtre. Par exemple pour une commande shell tenant sur une ligne : :.!sh.

Si vous voulez quelque peu masquer une commande et qu’elle s’exécute automatiquement au passage de la slide pour, par exemple, afficher un graphique, vous pouvez commencer une slide avec (' au lieu de (". Cela ajoutera le bon caractère mais vous mettra en mode insertion juste avant. Si vous écrivez une commande avant - mettons feh graph.png - et le titre après le caractère spécial, la commande sera masquée et automatiquement évaluée à l’ouverture de la slide.

Voilà, vous avez les bases et un peu plus pour faire de jolies présentations :)

Personnalisation

Modifier les extensions considérées comme des slides

Dans les plugins vim ce qui détermine les extensions de fichier concernées se trouve dans le dossier ftdetect. Dans ce dossier se trouve un fichier slides.vim dans lequel on trouve la ligne

au BufNewFile,BufRead *.slides setf slides

Pour changer l’extension il suffit de modifier *.slides en *.prez par exemple.

Ajouter/Modifier des raccourcis clavier

Si vous n’aimez pas les raccourcis fournis (comme (") vous pouvez les modifier dans le fichier ftplugin/slides.vim. Vous verrez des lignes type

inoremap <buffer> (' <space>›<c-o>i

Modifier (' changera la combinaison de touche à faire en mode insertion pour insérer ce qui suit. Modifier ce suit modifiera évidemment ce qui est insérer.

Pour modifier ce qui permet de passer d’une slide à l’autre il faut modifier <PageUp> et <PageDown> des lignes :

nnoremap <buffer> <PageUp> zkzt
nnoremap <buffer> <PageDown> zkzt:Hook<cr>

Modifier les commandes pour se mettre initialement en mode présentation

Par défaut ce qui suit est exécuté pour créer un mode “présentation” le plus sobre possible :

setlocal noshowmode noruler noshowcmd nolist nonu

sauf que personnellement j’ai aussi rnu d’activé. J’entrais donc en mode présentation avec les numéros relatifs à gauche de la console. J’ai ajouté nornu à la fin.


  1. généralement en faisant alt+espace