Une session GNU Screen pour éditer du Latex efficacement

Publié le 16 avril 2018 dans [ screen, latex ]

Quand j'édite un article de recherche, avec vim mon éditeur favori, j'ai toujours besoin de nombreux terminaux : le premier pour éditer, bien sûr, mais aussi un autre pour lancer la compilation (ou résoudre les problèmes qui y sont liés), un autre pour lancer l'affichage pdf (avec zathura), un autre pour git, etc.

Mon gestionnaire de fenêtres, AwesomeWM, est efficace pour beaucoup de choses mais il n'a pas de mode "onglets", pour afficher facilement le Xe (on peut s'en sortir avec rofi, cela dit). GNU Screen est un super outil pour gérer des terminaux et permet de lancer facilement une session avec 5 onglets nommés, vers lesquels on pourra facilement basculer. Il suffit pour cela de créer un fichier de configuration spécifique .tex.screenrc (par exemple), dans lequel on utilisera screen -t <name>. On peut en outre récupérer les options du fichier de configuration principal à l'aide de la commande source.

Voici donc un exemple de fichier :

source /home/raph/.screenrc

# create windows screen -t edit screen -t compile screen -t zathura screen -t biblio screen -t git

Il se lance dans n'importe quel dossier, avec la commande : screen -c ~/.tex.screenrc.

Voici une capture d'écran du résultat :

Il me reste à trouver comment sélectionner la fenêtre 0 ("edit") en premier, plutôt que de rester sur la 5e ("git"), mais c'est un détail : un simple Ctrl-A + 0 nous y emmène.

Si ça peut servir, voici le contenu de mon fichier .screenrc, qui permet d'avoir la barre d'onglets en bas comme ci-dessus (et gère d'autres options de Screen) :

startup_message off
vbell off
autodetach on
startup_message off
pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended."

#remove some stupid / dangerous key bindings bind k bind ^k bind . bind ^\ bind \ bind ^h bind h bind 'K' kill bind 'I' login on bind 'O' login off bind '}' history

altscreen on

# C-a space to have windowlist bind ' ' windowlist -b

# status line at the bottom, where it belongs caption string "%{= kg}%H-%S%{= kw} | %{= kw}%-w%{= gk} %n %t %{= kw}%+w %{= km}%-= %c" caption always

Bien entendu, cette technique peut servir dans d'autres contextes de développement (éditer un blog "statique" avec Jekyll et le compiler, par exemple, ou en modifier l'apparence avec des feuilles CSS).