Farbige Manpages funktionieren nicht mit Gentoo

8

Ich habe ein Problem mit diesen Methoden , um Farben in meinen Manpages in Gentoo zu erhalten. Ich habe bereits in den Gentoo-Foren nachgefragt, aber es funktioniert immer noch nicht, und die Kommentare in einem Fehlerbericht (Fehler 184604 ) funktionieren auch nicht. Kann mir jemand helfen, Farben in meine Manpages zu bekommen?

EDIT : Ja, ich verwende weniger als Pager und Urxvt-Unicode als Terminal-Emulator

EDIT2 :

Ich habe bereits in den Gentoo-Foren gefragt, aber es hat nicht geholfen. Dies ist der Link: http://forums.gentoo.org/viewtopic-t-819833-start-0.html .

Vicfred
quelle
Sie verwenden weniger als Pager, oder?
Xenoterracide
Welchen Terminalemulator verwenden Sie und was wird echo $TERMangezeigt?
Gilles 'SO - hör auf böse zu sein'

Antworten:

21

Könnte eine Reihe von Problemen sein.

zshVersuchen Sie, dies zu verwenden , während Sie Folgendes verwenden ~/.zshrc:

export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;47;34m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'
export LESS=-r

Öffnen Sie dann ein neues Terminalfenster und versuchen Sie es auszuführen

man ls

Wenn es nicht funktioniert, führen Sie die folgenden Schritte aus, um herauszufinden, wo das Problem liegt:


Nummer 1

typeset -p LESS_TERMCAP_md | cat -v

sollte drucken

typeset -x LESS_TERMCAP_md="^[[01;31m"

und

typeset -p LESS

sollte drucken

typeset -x LESS="-r"

Wenn nicht, legen Sie das export LESSZeug in die falsche Datei.


Nummer 2

echo "${LESS_TERMCAP_md}red${LESS_TERMCAP_me}"

sollte drucken

red

in einer roten Farbe. Wenn dies nicht der Fall ist, stimmt etwas mit Ihren Terminaleinstellungen nicht. Überprüfen Sie Ihre Terminaleinstellungen (z. B. ~/.Xresources) oder versuchen Sie es mit gnome-terminaloder xtermund prüfen Sie, ob dies funktioniert.


Nummer 3

echo -E "a^Ha" | LESS= less -r

( ^Hmuss durch Drücken von Ctrl+ Vdann Ctrl+ eingegeben werden H)

sollte drucken

a

in rot. Wenn dies nicht der Fall ist, führen Sie diese bitte aus

type less
less --version

und fügen Sie die Ausgabe wieder in Ihre Frage ein.


Nummer 4

bzcat /usr/share/man/man1/ls.1.bz2 | \
    /bin/sh /usr/bin/nroff -mandoc -Tutf8  | head -n 5 | cat -v

sollte drucken

LS(1)                            User Commands                           LS(1)



N^HNA^HAM^HME^HE

(Beachten Sie das ^HGleiche in Schritt 3)

wenn es etwas druckt wie:

LS(1)                            User Commands                           LS(1)



^[[1mNAME^[[0m

Stattdessen müssen Sie einen Weg finden, um "sgr-Escape-Sequenzen" zu deaktivieren. Die einfachste Sache , zu versuchen, das Hinzufügen export GROFF_NO_SGR=1zu .zshrc, aber es gibt auch andere Möglichkeiten, dies zu beheben.


Nummer 5

bzcat /usr/share/man/man1/ls.1.bz2 | \
    /bin/sh /usr/bin/nroff -mandoc -Tutf8 | less

sollte die lsManpage mit Farben anzeigen .


man ls

sollte jetzt funktionieren!

Mikel
quelle
Ich benutze zsh, ich konnte dies vorher nicht posten, da ich ein neuer Benutzer war. Forums.gentoo.org/viewtopic-t-819833-start-0.html auch typensatz -p WENIGER druckte dies: "typsatz: keine solche Variable : WENIGER "und ungefähr die Nummer 5, es gibt kein ls.1.gz, aber es gibt ls.1.bz2, aber es druckt dieses" gzip: /usr/share/man/man1/ls.1.bz2: nicht im gzip-Format " Der Rest der Optionen funktioniert gut, aber ich habe immer noch keine farbigen Manpages.
Vicfred
typeset -p LESSNicht funktionieren ist dein Problem. Aber da Sie verwenden zsh, sollten Sie export LESS=-rIhre eingeben ~/.zshrc, nicht Ihre ~/.bashrc. Bitte machen Sie das und versuchen Sie diese Schritte erneut.
Mikel
Und wechseln Sie zcat /usr/share/man/man1/ls.1.gzzu bzcat /usr/share/man/man1/ls1.bs2.
Mikel
Ich habe die Anweisungen basierend auf den Informationen aktualisiert, die Sie gerade angegeben haben.
Mikel
7
export GROFF_NO_SGR = 1 hat funktioniert, danke, können Sie mich auf einige Referenzen zu diesem Thema verweisen? Sie waren der einzige, der tatsächlich eine andere Antwort gab.
Vicfred
3

Nachdem ich Mikels Antwort gelesen habe, ist es sehr umfassend und wird hoffentlich auf allen Systemen funktionieren, aber es ist wahrscheinlich übertrieben für mich (auch auf einem Gentoo-System).

Also hier ist ein Ergebnis für Leute, die mit all diesen Spielereien sehr "lange tun, nicht lesen".

Das absolute Minimum, das ich tun könnte, um farbige Manpages zu erhalten, ist wie folgt:

LESS_TERMCAP_md=$'\E[01;31m' LESS_TERMCAP_me=$'\E[0m' GROFF_NO_SGR=1 man man

Dies rendert Text, der zuvor nur fett, fett und rot war . (Das Rot gekennzeichnet durch die '31' in LESS_TERMCAP_md)

LESS_TERMCAP_se=$'\E[0m' LESS_TERMCAP_so=$'\E[01;32m'

Diese beiden Regeln steuern die Formatierung der aktuellen Zeilennummernanzeige und zwingen sie zum Rendern in Grün.

LESS_TERMCAP_us=$'\E[04;33m' LESS_TERMCAP_ue=$'\E[0m'

Diese beiden Regeln verschieben alles, was zuvor unterstrichen war, in unterstrichen und gelb . (04 ist "unterstrichen", 33 ist "gelb")

Kent Fredric
quelle