Wie kann ich Menschen ohne weniger benutzen?


21

Standardmäßig wird manverwendet, lessum Text auszugeben. Wie kann ich sagen, dass es nur auf stdout ausgegeben werden soll? Mein Terminal-Emulator verfügt über eine Bildlaufleiste und eine Suchfunktion, die ich anstelle der Pfeiltasten verwenden möchte.

Antworten:


31

Tatsächlich wird verwendet, was auch immer in MANPAGERder PAGERUmgebungsvariablen oder angegeben ist.

Abhängig von Ihrer manImplementierung und Version kann es auch einen Befehlszeilenschalter geben, um den Pager anzugeben.

Mit der Implementierung von man-db verwende ich die folgenden Methoden:

MANPAGER=cat man man

PAGER=cat man man

MANOPT='-P cat' man man

man -P cat man

Um es dauerhaft festzulegen, fügen Sie es einfach Ihrer ~/.bashrc(oder einer anderen von Ihrer Shell verwendeten) Initialisierungsdatei hinzu:

export MANPAGER=cat

Das funktioniert auch mit einigen älteren manImplementierungen, obwohl MANOPTman-db spezifisch ist:

export MANOPT='-P cat'

(Besser nicht so einstellen PAGER. Diese wird auch von vielen anderen Anwendungen verwendet.)

Es könnte auch eine globale Konfigurationsdatei geben. man-db hat /etc/man_db.confoder /etc/manpath.config. Dort können Sie einstellen:

DEFINE    pager    cat

Dies wird aber leider nur berücksichtigt, wenn weder gesetzt MANPAGERnoch PAGERgesetzt.


2
Gute Antwort. Re: ~/.bashrc, Sie könnten auch den Export in einem bedingten wickeln , so dass es nur den Pager setzt , wenn sie der entsprechende Terminal / Emulator ist: if [ "x$TERM" = "xxterm" ]; then export MANPAGER=cat; fi; offensichtlich durch xtermden entsprechenden Emulator ersetzen .
Kevin

1
Eigentlich ist es gut und beabsichtigt, dass manpath.config später berücksichtigt wird. Sowohl PAGER als auch MANPAGER sind auf Benutzerebene, wobei sich die Konfigurationsdatei auf Systemebene befindet. Wenn die Systemebene Vorrang haben würde, könnten Benutzer überhaupt nicht überschreiben.
Paul de Vrieze

@PauldeVrieze, Sie haben Recht MANPAGER. Ich habe das Wort "leider" verwendet, weil das Verhalten auch für "leider" gilt PAGER. Dies ist eine generische Einstellung (die von vielen Tools verwendet wird), und ich würde es vorziehen, eine bestimmte Einstellung (die nur von einem Tool verwendet wird) nicht zu überschreiben , auch wenn dies der Fall ist Eine davon ist die Systemebene.
Manatwork

Wenn Sie eine bestimmte Einstellung für ein einzelnes Tool überschreiben möchten, können Sie dies jederzeit tun, indem Sie einen Alias, eine Shell-Funktion oder ein Wrapper-Skript erstellen. PAGER=cat manalias man='PAGER=cat MANPAGER=cat man'
Beides

6

Leiten Sie einfach die Ausgabe von manan cat?

man ls | cat   # useful use of cat

6
Beachten Sie, dass abhängig von der manImplementierung entweder 1) ein Fehler auftritt, 2) Formatierungscodes im Terminal angezeigt werden, 3) alle Formatierungen entfernt werden und 4) wie erwartet funktioniert.
Manatwork

2
Ich habe noch nie etwas anderes als 4 gesehen.
Keith Thompson

Bei @KeithThompson-MacOS wird mander eingestellte Pager anscheinend verwendet, MANPAGERauch wenn es sich bei der Ausgabe um eine Datei oder eine Pipe handelt. Und wenn der Pager ist less, dann ist alles gut, weil es lesssich so verhält, catals wäre die Ausgabe eine Pipe ... Aber wenn Sie etwas anderes verwenden (wie Vim, das ich benutze), dann ist es nicht so gut.
muru

1

Probieren Sie diese Befehle aus, um eine manuelle Ausgabe ohne Pager zu generieren.

  • man ls | cat (erzeugte feste Breite)

  • man -P cat ls (generierte variable Breite)

Ich war auf einem GNU-Linux-System


1

Ein anderer Blickwinkel: Ähnlich wie bei Tonys Antwort.

Sie können die manuelle Ausgabe auch in eine Datei umleiten und mit Ihrem bevorzugten Texteditor anzeigen oder sogar Lesezeichen, Kommentare usw. hinzufügen.

man bash  > bashman.txt

Ich habe eine Kopie der Bash-Manpage sowie nur die Abschnitte zur Bash-Ablaufsteuerung und zu Bash-Test-Flags als Textdateien in meinem Bin-Verzeichnis gespeichert, damit ich sie direkt in meinen Texteditor (Kate) laden kann, während ich gerade bin Bash-Skripte schreiben.


Warnung: Abhängig von Ihrem System und der Manpage kann der obige Befehl zu Formatierungsinformationen und Steuerzeichen in der Datei führen.

Um dies zu vermeiden, gehen Sie folgendermaßen vor LESS='+/^TIPS' man man:

To  get a  plain  text  version  of a man page, without backspaces and
underscores, try

  # man foo | col -b > foo.mantxt

1
@Wildcard - Danke. Das wusste ich nicht.
Joe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.