Se abbiamo un terminale che supporta i colori perchè non colorare l'output di Man per renderlo più chiaro?
Salve a tutti, oggi voglio proporvi un paio di piccoli trucchi che vi permetteranno di colorare l'output di Man, in modo da renderlo più comprensibile.
Man è un comando conosciutissimo da tutti gli utenti linux e serve per visualizzare le pagine di aiuto, lo stile con cui vengono formattate le pagine di aiuto è processato da nroff e poi visualizzato da un pager come "Less" per esempio.
Utilizzando il comando
nroff -man /path/file/aiuto.1 | less
otterrete praticamente lo stesso risultato.
Vediamo come fare per colorare il nostro output.
Metodo 1:
Il primo metodo che vi propongo è molto semplice, è sufficiente installare "Most", su gentoo basta usare il seguente comando:
emerge most
e dopodichè sarà sufficiente cambiare la variabile $PAGER con il percorso in cui avete installato most.
export PAGER=/usr/bin/most
se volete che la modifica sia definitiva tale comando dovrà essere inserito all'interno del vostro .bashrc o .zshrc, a seconda della console che usate.
Metodo 2:
Il secondo metodo è un po' più complesso, ma ve lo consiglio caldamente perchè potrete continuare ad usare "less", che ha più funzioni rispetto a most. E poi è presente in praticamente qualunque distribuzione di Linux.
Aggiungete quanto segue al vostro .bashrc o .zshrc
export LESS_TERMCAP_mb=$'\E[01;31m' # Inizio testo lampeggiante
export LESS_TERMCAP_md=$'\E[01;38;5;74m' # Inizio grassetto
export LESS_TERMCAP_me=$'\E[0m' # Fine
export LESS_TERMCAP_se=$'\E[0m' # Fine modo standout
export LESS_TERMCAP_so=$'\E[48;5;25m' # Inizio standout
export LESS_TERMCAP_ue=$'\E[0m' # fine sottolineato
export LESS_TERMCAP_us=$'\E[04;38;5;146m' # Inizio sottolineato
Quando riavvierete la console, automaticamente l'output sarà colorato, se ciò non accadesse sarà necessario fare qualche verifica...
Ovviamente se volete potete tranquillamente modificare i colori come preferite. In questo caso potete fare riferimento alla pagina di wikipedia riguardante gli "ANSI escape codes", seguendo questo link .
Verifiche da fare in caso di problemi
Se l'output non si colora allora sono necessarie alcune verifiche. Iniziamo!
Prima verifica:
Digitate questo comando:
typeset -p LESS_TERMCAP_md | cat -v
Il terminale dovrebbe rispondervi con:
typeset -x LESS_TERMCAP_md="^[[01;31m"
E digitando quest'altro comando:
typeset -p LESS
Dovrebbe ritornarvi:
typeset -x LESS="-r"
Se ciò non accade, allora probabilmente avete inserito gli Export nel file sbagliato, controllatelo, ma il parametro "-r" non sempre è necessario...
Seconda verifica:
Il comando seguente:
echo "${LESS_TERMCAP_md}azzurro${LESS_TERMCAP_me}"
dovrebbe tornarvi:
azzurro
con le impostazioni che vi ho proposto. Se non accade, qualcosa non va con le impostazioni con il vostro terminale.
Terza verifica:
il comando seguente:
bzcat /usr/share/man/man1/ls.1.bz2 | /bin/sh /usr/bin/nroff -mandoc -Tutf8 | head -n 5 | cat -v
Dovrebbe scrivervi le prime righe dell'aiuto di ls, in questo modo:
LS(1) User Commands LS(1)
N^HNA^HAM^HME^HE
Se invece vi ritrovate una cosa del genere:
LS(1) User Commands LS(1)
^[[1mNAME^[[0m
La colpa è delle "sgr escape sequences", dovete disattivarle. In Zsh basta aggiungere a .zshrc la seguente riga:
export GROFF_NO_SGR=1
Questo è quanto, ora tutto dovrebbe essere bello colorato.
Buona colorazione a tutti!
Saluti, Penaz.