Emacs als Pager?

1835
Justin Smith

Ich suche nach einer Möglichkeit, emacs als meinen Pager-Befehl in der Shell zu verwenden (zum Beispiel mit man oder um die Ausgabe eines asynchronen Befehls mit einer großen Menge an Ausgabe zu scrollen). Ich verwende emacsclient als meinen $ EDITOR, aber emacsclient kann nicht stdin als Eingabedatei verwenden. Gibt es eine Emacs-Erweiterung, die dies ausführt, oder einen Pager, der die meisten der Emacs-Pufferbewegungs- und -suchbefehle verwendet?

Ich weiß, dass ich vielleicht nur Mx term oder Mx ansi-term verwenden und meine $ PAGER-Variable auf 'cat' setzen kann, aber ich hoffe, es gibt etwas, das sich in meine jetzige Gewohnheit einfügt, Emacs und xterm separat zu verwenden.

4
Ich habe nach einer Lösung für Sie gesucht, aber ich fürchte, es gibt keine Möglichkeit, STDIN zu lesen. Scheint eine ziemliche Einschränkung zu sein .... Joe Casadonte vor 14 Jahren 0
Dies ist technisch gesehen ein Dupe der folgenden Frage - http://superuser.com/questions/31404/how-to-make-emacs-read-buffer-from-stdin-on-start Darren Hall vor 14 Jahren 2

2 Antworten auf die Frage

1
Craig

less unterstützt die meisten Motion-Key-Bindungen von emacs buffer, nicht jedoch die Suchbindungen außerhalb der Box. Möglicherweise können Sie lesskey verwenden, um die Schlüsselbindung an den Emacs anzupassen.

0
Bryan Oakley

Sie können dieses Shell-Skript als Pager verwenden:

#!/bin/sh t=$(tempfile -s .emacs-pager) || exit 1 cat - >> $t echo 'reading into emacs...' emacsclient "$t" rm -f -- $t 

Speichern Sie es als ~ ~ / bin / emacs_pager.sh, machen Sie es ausführbar (zB:) und legen Sie chmod +x ~/bin/emacs_pager.shes als Wert für die PAGER-Umgebungsvariable (zB :) fest export PAGER=~/bin/emacs_pager.sh.

Hinweis: Das obige Shell-Skript stammt aus diesem reddit-Beitrag: https://www.reddit.com/r/emacs/comments/2rr1ha/use_a_buffer_as_pager_from_shellmode/cnik8wb/