Wie kann ich den man-Befehl dazu bringen, keinen Pager zu verwenden?

1494
tig

Wie kann ich den manBefehl erzwingen, keinen Pager zu verwenden, stattdessen die gesamte Manpage auf einmal ausgeben und alles hervorheben?

Wenn ich man -P catoder benutze man | cat, verliere ich das Hervorheben.

4
Du brauchst einen besseren Titel. SLaks vor 14 Jahren 2
@Slaks: Du meinst die Antwort ist nicht "kaufe ihm eine Brombeere"? mbarnett vor 14 Jahren 1
@ Matt: Genau. SLaks vor 14 Jahren 0
Ops! Habe es nicht so gelesen :))) vor 14 Jahren 0

4 Antworten auf die Frage

7
tig

Langes Lesen der Handbücher für den Mann, weniger, groff und grottig, gab mir schließlich eine Antwort

Die Hervorhebung erfolgt standardmäßig mit Rückschrittfolgen: c\bc=> fett c, _\bc=> unterstrichen c. Wenn die Ausgabe jedoch als Pager verwendet wird, wird in beiden Fällen nur c ausgegeben. Es werden auch leere Zeilen gedrückt, daher muss Pager auf "Pager" gesetzt sein ul | cat -s.

Pager kann auf verschiedene Arten eingestellt werden:

  1. Verwendung von MANPAGER- oder PAGER-Variablen (MANPAGER ist besser, da PAGER nicht nur den man-Befehl betrifft)

    export MANPAGER='ul | cat -s' 
  2. in man.conf

    PAGER ul | cat -s 
  3. mit dem Parameter -P

    cat -P 'ul | cat -s' … 

    oder

    alias man='man -P "ul | cat -s"' 
+1, but I only need to use 'ul' as my pager to dump the output to the console with highlighting. I.e. `man -P ul `. Ubuntu 12.04.2. G-Wiz vor 11 Jahren 0
2
Moisei

Mann Mann

... PAGER A program to use for interactively delivering man's output to the screen. If not set, `more -s' is used. See more(1). 

Was bedeutet, dass der Pager von PAGER env reguliert wird. variabel, So definieren Sie einfach PAGER als

setenv PAGER cat 

und genieße.

Warum das Downvote? Dies ist möglicherweise nicht die optimale Lösung, aber nicht falsch. Probieren Sie es aus: `$ PAGER = cat man foobar`. bcat vor 14 Jahren 0
Ist "cat" als Pager nicht grundsätzlich dasselbe, als wenn man überhaupt keinen Pager verwendet? bcat vor 14 Jahren 0
Die Frage ist ** nicht ** mit einem Pager und dies ohne Hervorhebung. Pascal Thivent vor 14 Jahren 0
Wenn ich diesen Ansatz versuche, verliere ich das Hervorheben (unter Mac OS X und Ubuntu). Brian Campbell vor 14 Jahren 0
Ich verliere auch das Hervorheben. in einer anderen Antwort wird darauf hingewiesen, dass "man -P ul" oder "PAGER = ul man" funktioniert. TIL über ul… flying sheep vor 10 Jahren 0
1
amphetamachine

Alternativ gibt es immer den -PSchalter:

man -P cat foo 
Ich bin schon traurig, dass ich mit "-P cat" die Hervorhebung benutze tig vor 14 Jahren 0
Ich habe meine Theorie mit überprüft man -P cat man |tee foo.txt ; less -R foo.txt. Die Formatierung ist immer noch da; es wird einfach nicht im Befehlsfenster angezeigt. amphetamachine vor 14 Jahren 0
1
Pascal Thivent

Dies ist nicht genau das, was Sie wollen (Sie erhalten die Ausgabe nicht in der Konsole), aber Sie könnten eine DVI-Datei mit dem Inhalt eines Handbuchs erzeugen, wie in Man's Man erklärt:

man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi 

Dieser Befehl dekomprimiert und formatiert die nroff-Quellhandbuchseite ./foo.1x.gz in eine geräteunabhängige (dvi) -Datei. Die Umleitung ist notwendig, da das -T-Flag bewirkt, dass die Ausgabe ohne Pager an stdout geleitet wird. Die Ausgabe kann mit einem Programm wie xdvi betrachtet oder mit einem Programm wie dvips zu PostScript weiterverarbeitet werden.

Ich habe das gerade getestet und die dvi-Datei mit evince geöffnet: Die Hervorhebung geht nicht verloren.

Mann auf Mac hat keine -l und -T-Parameter tig vor 14 Jahren 0