%

BAT : un 'cat killer'… de la couleur, de la surbrillance dans le terminal

Article publié, le et modifié le
3 minutes de lecture

Cet article contient 447 mots.
Source brute de l'article :
Commit version : dbfc152

Description

Découverte de l’outil bat qui est un clone “amélioré” de l’outil cat, qui apporte la mise en évidence de la syntaxe, de la couleur, gère plusieurs languages informatique et s’intégre à Git ! Il est même possible d’utiliser un thème sombre…

C’est un outil qui existe depuis plusieurs années (4 ans au moment de l’écriture de cet article), sous une licence Open Source, au choix de la MIT ou de l’Apache 2.0.

Note : Il vaut mieux utiliser un terminal capable de gérer correctement une palette 24 bit.

Le dépôt officiel explique beaucoup de choses, en anglais,

Installation

Généralement, quelque soit l’OS Linux ou BSD, le paquet à installer s’appelle bat.


  • Sous Debian, le binaire s’appelle batcat
  • Sous OpenBSD : bat tout simplement

Configuration

Un fichier de configuration peut être généré ainsi :

:$ bat --generate-config-file

Relativement à l’usage des couleurs en 24 bit dans le terminal, ajouter la variable d’environnement COLORTERM, tel que :

if [ -x $(command -v bat) ]; then
    export COLORTERM="truecolor" # or "24bit"
fi

(Si Debian/*Buntu, pensez à changer le nom du binaire !)

Utilisation

Un des usages de l’outil est de le combiner avec certains outils, tel git, find, man, par exemple parmi d’autres.

find

Pour utiliser bat avec find, il suffit d’appeler le binaire par le biais de l’option -exec, tel que :

find … -exec bat {} +

où ‘…’ représente l’expression de votre recherche.

git

Pour ceux qui font du developpement logiciel et utilise git, bat peut montrer les modifications en les metant en évidence, tout en respectant l’indentation.

Créer une fonction nommée batdiff puis appelez-la :

batdiff() {
    git diff --name-only --relative --diff-filter=d -z | xargs -0 bat --diff
}

man

Ajouter la variable d’environnement MANPAGER tel que :

export MANPAGER="bat -pl man"

bien sûr, il est possible d’y implémenter toute option que gère l’outil bat.

Puis appeler simplement le binaire man avec le manpage désiré, dans un terminal, tel par exemple :

  • Sous Debian : man batcat

Debian : man batcat
Debian : man batcat

  • Sous OpenBSD : man pf.conf

OpenBSD : man pf.conf
OpenBSD : man pf.conf


Astuce

Vous remarquerez que la sortie produit aussi des signes ou symboles d’échappement ANSI, incompréhensibles pour l’être humain que nous sommes.

L’astuce est de mettre en pipe, l’outil col suivi de bat, tel que :

man() {
    sh -c "man '$@' | col -bx | bat -l man"
}

Et d’appeler tout simplement man.


Documentation

En langue anglaise :

Remerciements