Wie ändere ich das Standard-Leseprogramm?

7

Wenn ich gerade laufe man (something), lesswird es zum Anzeigen verwendet. Unter Mac OS X scrolle ich jedoch sehr gerne mit dem Touchpad anstelle von up/ downoder page-up/ page-down. Gibt es eine Möglichkeit, nur Text in das Terminal zu drucken, anstatt lessoder zu verwenden more?

Halst
quelle
@peth Die Standardeinstellung.
Halst
Sie können es tun, aber es wird Navigation und Suche zu einem Schmerz machen. Wie wäre es mit dem Anzeigen der Manpages in einem GUI-Viewer? Ich weiß nicht, was in Carbon verfügbar ist. in X gibt es xman, tkmanoder was auch immer Sie zur Verfügung haben. (Oder es gibt natürlich Emacs.)
Gilles 'SO - hör auf böse zu sein'
lessscrollt mit der Maus für mich. Das ist dem Touchpad von OSX zugeordnet, denke ich. Vielleicht hat die Terminal-App einige Einstellungen, um dies zu ermöglichen.
Phunehehe

Antworten:

7

Ich bin mir nicht sicher über OSX, aber hoffentlich ist es Unix-y genug ...

Fügen Sie in Ihrem $ HOME / .bashrc die folgende Zeile hinzu:

export MANPAGER=cat

Wenn Sie möchten, dass alle Ihre Paging-Programme auf diese Weise funktionieren, legen Sie PAGERstattdessen fest. manwird verwendet, MANPAGERwenn gesetzt, andernfalls fällt es zurück auf PAGER, was, wenn nicht gesetzt, zurückfällt auf more.

unpythonisch
quelle
Danke, das funktioniert. Wissen Sie jedoch, ob es eine Möglichkeit gibt, das Scrollen am Anfang des Dokuments und nicht am Ende zu beginnen? Ich denke, das wird bi schwierig ...
Halst
Sie meinen, Sie möchten den Text in umgekehrter Reihenfolge? Letzte Zeile zuerst und erste Zeile zuletzt? Wenn ja, verwenden Sie tac... und ja, das steht für catrückwärts. Oder möchten Sie, dass die Bildlaufleiste links bleibt, sodass der obere Rand des Dokuments angezeigt wird? Wenn letzteres der Fall ist, habe ich keine Ahnung. Das wäre terminal (und damit MacOSX "Terminal" spezifisch).
unpythonic
Der zweite. Ja, das ist schade ...
Halst
7

Fügen Sie Folgendes hinzu, um den gewünschten Effekt zu erzielen, bei dem Sie eine Manpage in einem separaten Fenster mit der Ansicht ab der ersten Seite erhalten ~/.bash_profile:

function man {
    mf=`mktemp /tmp/$1-formatted-XXXXXXXXX`
    /usr/bin/man -t "$@" | pstopdf -i -o $mf
    mv $mf $mf.pdf
    open -W $mf.pdf
    rm $mf.pdf
}

Sie können sich abmelden und wieder anmelden, um es zu aktivieren, oder die Datei einfach neu laden mit:

. ~/.bash_profile

Letzteres birgt das Risiko, Dinge wie die PATHVariable mit doppelten Informationen neu zu definieren.

Diese Funktion überschreibt den manBefehl und bewirkt, dass eine PDF-formatierte Version der Manpage in einer temporären Datei erstellt wird. Öffnen Sie diese in Ihrem PDF-Viewer (standardmäßig Vorschau) und entfernen Sie die temporäre PDF-Datei, wenn Sie den Viewer schließen. Die Idee ist, dass Ihr Standard-PDF-Anzeigeprogramm wahrscheinlich so auf das Touchpad reagiert, wie Sie es möchten.

Um dieses letzte Feature zu erhalten, bei dem das temporäre PDF entfernt wird, musste ich open(1)warten, bis der PDF-Viewer geschlossen wurde, bevor es fortgesetzt wird. Dies bedeutet, dass Sie Ihr Terminalfenster nicht weiter verwenden können, solange die PDF-Datei geöffnet bleibt. Ein Hack, um dies zu umgehen, wäre, die -WFlagge zu entfernen und dem openBefehl so etwas zu folgen sleep 1, was genug Zeit für das Öffnen der Vorschau sein sollte. Ein anderer Hack könnte darin bestehen, die letzte Zeile durch so etwas zu ersetzen:

( sleep 60 ; rm $mf.pdf ) &

Das plant den rmBefehl für 60 Sekunden in der Zukunft, sicherlich genug Zeit.

Warren Young
quelle
Danke, das ist nützlich! Gibt es eine Möglichkeit, dies außer manKontrolle zu bringen? dh diese Aktionen als Standard-Pager festlegen? (Übrigens, warum das PDF entfernen, wenn es sich /tmptrotzdem im Ordner befindet?).
Halst
Betreff: "das ist nützlich". Vielen Dank. Also stimme mir zu. :)
Warren Young
Betreff: Erweitern: Sie können einen Texteditor installieren, der eine Befehlszeilenverknüpfung hinzufügt, die auch die -Konvention zum Abrufen von Eingaben von stdin wie MacVim versteht, und dann die PAGERUmgebungsvariable auf so etwas wie setzen mvim -. (TextWrangler installiert auch eine Befehlszeilenverknüpfung, aber ich weiß nicht, ob sie verstanden wird -.) Das Hauptproblem dabei ist, dass einige Dinge, die einen "Pager" erwarten, auch erwarten, dass sie Dinge wie Terminal-Escape-Sequenzen für die Formatierung ausführen können. Deshalb musste ich für den "Mann" -Fall auf die PDF-Formatierung zurückgreifen.
Warren Young
Betreff: Warum das PDF entfernen? Nur Platz sparen und nach mir selbst aufräumen. Gewohnheit mehr als alles andere. Wenn es Ihnen nichts ausmacht, dass all diese temporären PDF-Dateien verstopfen, /tmpbis etwas zum Bereinigen hinzukommt, entfernen Sie -Wden rmBefehl und.
Warren Young
1
@ Warren Young - Häresie! Sakrileg! Wenn es auf 80x24 grünem Leuchtstoff nicht einfach zu sehen ist, ist es sicherlich nicht Unix. Scherz beiseite, das ist eine großartige Lösung. Upvote von mir.
unpythonic