~/.bashrc : couleurs pour les pages man


#1

Pour que le pager less puisse afficher les page man avec des couleurs,
j’ai ajouté ce blocs de lignes dans mon fichier ~/.bashrc

# Pager less en couleurs
#  Voir aussi :
#    man termcap
#    man console_codes
export                           \
LESS_TERMCAP_mb=$'\e[1;31m'      \
LESS_TERMCAP_md=$'\e[1;38;5;74m' \
LESS_TERMCAP_me=$'\e[0m'         \
LESS_TERMCAP_se=$'\e[0m'         \
LESS_TERMCAP_so=$'\e[1;44;33m'   \
LESS_TERMCAP_ue=$'\e[0m'         \
LESS_TERMCAP_us=$'\e[1;32m'

NOTE :

Si vous préférez plutôt utiliser ce bloc de lignes dans votre fichier ~/.profile
comme ce fichier sera alors sourcé par l’interpréteur de commandes dash
il vous faudra utiliser une syntaxe plus POSIX pour le caractère d’échappement.
Ce qui donne :

# Pager less en couleurs
#  Voir aussi :
#    man termcap
#    man console_codes
export                             \
LESS_TERMCAP_mb=$'\033[1;31m'      \
LESS_TERMCAP_md=$'\033[1;38;5;74m' \
LESS_TERMCAP_me=$'\033[0m'         \
LESS_TERMCAP_se=$'\033[0m'         \
LESS_TERMCAP_so=$'\033[1;44;33m'   \
LESS_TERMCAP_ue=$'\033[0m'         \
LESS_TERMCAP_us=$'\033[1;32m'

(Contrairement à \e la syntaxe \033 est aussi bien interprétée par bash que par dash)


#2

Et c’est +clair…merci!


#3

@MicP:

Peux-tu indiquer l’intérêt de passer par /.profile ? …et m’expliquer pourquoi je ne trouve pas /.dash,

même si :

$ whereis dash
dash: /bin/dash /usr/share/man/man1/dash.1.gz

Mes remerciements .


#4

Effectivement le fichier ~/.dash n’existe pas,
c’est une erreur de frappe de ma part
que je corrige de suite dans mon précédent message.


Le fichier ~/.profile est “sourcé” par l’interpréteur de commandes /bin/dash
au moment de l’ouverture de session de l’utilisateur quand on lance
un shell dans lequel on doit s’identifier (login shell), comme par exemple
un émulateur de terminal de l’interface en mode texte (les consoles tty)

Mais le fichier ~/.bashrc n’est pas pris en compte quand on utilise
un autre interpréteur de commandes que /bin/bash

et le fichier ~/.profile n’est pas pris en compte quand on utilise
un émulateur de terminal de l’interface graphique de l’environnement de bureau
parceque le shell de cette fenêtre de terminal n’est pas un "login shell"
puisqu’on s’est déjà identifié au lancement de l’environnement de bureau.


Plutôt que d’utiliser le fichier ~/.profile pour configurer les couleurs utilisées par /usr/bin/less
il vaudrait peut-être mieux utiliser un fichier de configuration correspondant au shell de l’utilisteur,
ou créer un fichier permettant de configurer le comportement de /usr/bin/less pour le compte utilisateur.

Mais je n’ai pas encore bien trouvé où le mettre, peut-être dans $HOME/.lesskey ou par un fichier d’un sous-répertoire de ~/.config/ qui serait “sourcé” .


#5

Citation Mais je n’ai pas encore bien trouvé où le mettre, peut-être dans $HOME/.lesskey ou par un fichier d’un sous-répertoire de ~/.config/ qui serait “sourcé” .

Je ne peux pas me prononcer sur cela d’autant plus que j’ignore comment tu arrives à ce qui est pour moi un répertoire (?) , un fichier (?) de la variable $HOME…

En basculant sur mes consoles TTY, je retrouve bien l’invite préférée de mon shell en interface graphique et grâce à ton “truc” je trouve le manuel plus lisible…"More readable "…avec une pointe de regret:face_with_raised_eyebrow:

Quant à savoir quelle syntaxe est adaptée aux divers interpréteurs de commandes, je laisse cela aux développeurs . J’ai bien dû être souvent “POSIX” sans le savoir mais dans un système ouvert je comprendrais qu’il y ait une certaine unité et rigueur orthographique .

Encore merci pour la précision de tes explications . Pour reprendre ton terme:
Pour moi, cela ne coule pas de “source”.:exploding_head:


#6

Pour visualiser la page man de bash
en allant directement au paragraphe
qui concerne la commande interne interne source de l’interpréteur bash :

man --pager='less -p "  source "' bash

La ligne au dessus montre que la commande source peut être remplacée par un simple point.


$HOME/.lesskey est la même chose que ~/.lesskey
je n’avais pas pris le temps de changer le copié/collé que j’avais récupéré dans la page man de lesskey
je devrais d’ailleurs plutôt utiliser la variable $HOME qui est plus POSIX que le caractère ~

Mais de toutes façons, mettre ce type de variables dans le fichier ~/.lesskey ne fonctionnera pas,
comme j’ai pu le lire tout-à l’heure dans ce fil de discussion


Normally you can put less configuration variables in your lesskey file, but this doesn’t work for the LESS_TERMCAP_xx variables, because less reads them before it reads the lesskey file (as of less 444). So you have no choice but to put them in the environment.


#7

Magnifique…:man_teacher:t5: