Alias man avec couleurs et recherche section

Bonjour,

J’ai repris des astuces pour man et avoir la couleur (à modifier selon les goûts) et aller directement à la section qui nous intéresse si besoin

alias a_man='f(){ if [ -n "$2" ] ; then man_pager_section=" -p \"^ +$2|^ *-.*, $2\" " ; else man_pager_section=" " ;  fi; LESS_TERMCAP_mb=$(tput bold; tput setaf 2) LESS_TERMCAP_md=$(tput bold; tput setaf 6) LESS_TERMCAP_me=$(tput sgr0) LESS_TERMCAP_so=$(tput bold; tput setaf 3; tput setab 4) LESS_TERMCAP_se=$(tput rmso; tput sgr0) LESS_TERMCAP_us=$(tput smul; tput bold; tput setaf 7) LESS_TERMCAP_ue=$(tput rmul; tput sgr0) LESS_TERMCAP_mr=$(tput rev) LESS_TERMCAP_mh=$(tput dim) LESS_TERMCAP_ZN=$(tput ssubm) LESS_TERMCAP_ZV=$(tput rsubm) LESS_TERMCAP_ZO=$(tput ssupm) LESS_TERMCAP_ZW=$(tput rsupm) command man -P "less $man_pager_section" "$1" ; unset -f f; };f'

j’ai testé et ça semble bien prendre en compte les options courtes et longues :

a_man ls
a_man ls -B
a_man ls --ignore-backups

Si vous voyez des erreurs ou des améliorations je suis preneur

Bien que pas convaincu de l’intérêt de faire un alias de fonction pour mettre de la couleur dans man, quelques infos à toutes fins utiles.
La couleur dans man s’obtient plus simplement en copiant le bloc ci-dessous dans un fichier soit ~/.bash_profile pour bash, ou .zprofile pour zsh:

# man color
export \
LESS_TERMCAP_md=$(printf '\e[1;32m')  \
LESS_TERMCAP_me=$(printf '\e[0m')     \
LESS_TERMCAP_se=$(printf '\e[0m')     \
LESS_TERMCAP_so=$(printf '\e[01;33m') \
LESS_TERMCAP_ue=$(printf '\e[0m')     \
LESS_TERMCAP_us=$(printf '\e[1;4;31m')

Pour ouvrir man dans un navigateur:
man -Hfirefox ls

Dans Falkon, si kio-extras est installé, il suffit de taper man:/ dans la barre de recherche pour avoir le man. Plus convivial d’avoir une bonne vue d’ensemble, que d’obtenir des bouts de man dans un terminal, et plus simple faire une recherche avec ‹ ctrl+f ›, question de goût personnel bien sûr.
Sinon, si ‹ less › est bien installé, la recherche du man en mode terminal, avec un ‹ / › , et ‹ N › pour trouver le résultat suivant ne fonctionne pas si mal.

oui, mais c’est surtout pour l’avoir à disposition quelque soit la machine
sur sa propre machine, c’est effectivement plus logique de mettre les variables LESS_TERMCAP en dehors de l’alias.
la recherche peut afficher le pattern et y faire référence sans en expliquer la fonction d’où l’utilité d’aller à la section directement.

par contre, la commande man -H me renvoie man: command exited with status 3:sur bullseye

Bonjour

On peut économiser⁣⠀quelques⠀printf

# Pager 'less' en couleurs => 'man' pages en couleurs
#  Voir :
#         man less
#         man termcap
#         man console_codes
#
export                          \
LESS_TERMCAP_md=$'\033[1;32m'   \
LESS_TERMCAP_me=$'\033[0m'      \
LESS_TERMCAP_se=$'\033[0m'      \
LESS_TERMCAP_so=$'\033[01;33m'  \
LESS_TERMCAP_ue=$'\033[0m'      \
LESS_TERMCAP_us=$'\033[1;4;31m'

Utilisant zsh, je remarque que celui de mon .zprofile est différent que celui d’un vieux .bash_profile. Je n’avais pas vérifié.

export LESS_TERMCAP_mb=$'\e[6m'          # begin blinking
export LESS_TERMCAP_md=$'\e[34m'         # begin bold
export LESS_TERMCAP_us=$'\e[4;32m'       # begin underline
export LESS_TERMCAP_so=$'\e[1;33;41m'    # begin standout-mode - info box
export LESS_TERMCAP_me=$'\e[m'           # end mode
export LESS_TERMCAP_ue=$'\e[m'           # end underline
export LESS_TERMCAP_se=$'\e[m'           # end standout-mode

Mais ça fait 6 exports au lieu d’un, qui peuvent expliquer les 17 micro-secondes perdues au démarrage.

@yatta
groff doit être installé. Je me souviens avoir galéré avec ce man, mais il y a … bien longtemps.
groff n’est pas une dépendance de man-db, mais seulement en suggest.
Vérifie quand-même.

manh() { man --html=firefox $1 ; } devrait fonctionner.

Sinon, jamais vu ton erreur exit 3. Essaie avec

MAN_DISABLE_SECCOMP=1 man man

export MAN_DISABLE_SECCOMP=1
man man

PAGER=less man


groff-base est installé
groff n’est pas installé