Manpages über Emacs anzeigen

430
UTF-8

Ich möchte im Grunde, was diese Frage verlangt. Leider funktionieren die Antworten nicht.

Wenn ich zum Beispiel das mache, was die am häufigsten vorgelegte Antwort sagt, und eintrittman echo, öffnet sich Emacs und der Mini-Puffer sagt:

Symbol's function definition is void: \(man\ \"echo\"\) 

Das einzige Fenster in Emacs ist leer.

Die verknüpfte Frage hilft auch nicht.

Normalerweise verwende ich Emacs mit seiner grafischen Benutzeroberfläche, möchte jedoch Manpages im Terminal anzeigen.

Das Festlegen der Variablen $PAGERauf emacsfunktioniert ebenfalls nicht. Zunächst ist es standardmäßig leer oder nicht gesetzt. Wenn ich es in umstelle emacs, führen nachfolgende Aufrufe dazu man, dass Emacs (GUI) geöffnet wird. Der Scratch-Puffer wird jedoch so angezeigt, als würde ich normalerweise Emacs starten (ich habe die Begrüßungsseite deaktiviert, deshalb wird der Scratch-Puffer angezeigt).

Ich weiß, dass ich Emacs starten, drücken C-x, eingeben manund dann den Namen der Manpage eingeben kann, die ich lesen möchte. Das dauert jedoch einige Zeit und der Einstieg man <page name>in ein Terminal ist viel schneller.

Auf meinem Computer läuft Ubuntu 16.04 (mit Linux 4.4.0) und GNU Emacs 24.5.1.

0
Was gibt "type emacs" auf Ihrem System zurück? choroba vor 6 Jahren 0
@choroba `emacs ist / usr / bin / emacs` UTF-8 vor 6 Jahren 0

1 Antwort auf die Frage

1
sds

Das Starten eines neuen Emacs jedes Mal, wenn Sie eine Manpage anzeigen möchten, ist ein ungewöhnlicher Arbeitsablauf. Am häufigsten ziehen es Menschen vor, laufende Emacs wiederzuverwenden:

emacsclient --no-wait -e '(man "man")' 

Wenn Sie wirklich darauf bestehen, gegen den Strom zu schwimmen, können Sie dies tun

emacs -Q --eval '(progn (man "man") (delete-window))' # not recommended 

Siehe auch Verwenden von Emacs für $ PAGER?

Aber es ist der Workflow, den ich mag. Ich benutze oft mehrere Emacs-Fenster. Ich benutze Emacs nicht als Fenstermanager. In meinem System ist bereits ein Fenstermanager integriert. Ihr Befehl öffnet tatsächlich die Manpage in einer vorhandenen Emacs-Instanz. Kann ich einfach eine neue Emacs-Instanz in dem Terminal starten, in dem der Befehl ausgeführt wird? UTF-8 vor 6 Jahren 0
@ UTF-8: Die Verwendung einer einzelnen Emacs-Instanz mit vielen Fenstern (in emacs lisp "Frames") hat zahlreiche Vorteile (z. B. kann bei dynamischer Vervollständigung Puffer in einem anderen Frame verwendet werden). Es verbraucht auch weniger Ressourcen. Siehe jedoch Bearbeiten. sds vor 6 Jahren 1
Vielen Dank für deine Bearbeitung. Ich habe '-nw' hinzugefügt, damit die GUI nicht gestartet wird. Es werden 2 Frames geöffnet: i.imgur.com/yA0E4fC.png Kann man eine Cx 0 automatisch ausführen lassen, so dass nur der Frame mit dem Manpage-Puffer angezeigt wird? UTF-8 vor 6 Jahren 0
Fügen Sie einfach hinzu, was `Cx 0` zum` --eval` macht sds vor 6 Jahren 0
Ich habe es ausprobiert, aber ich scheine nicht herauszufinden, wie ich die Befehle trennen kann: https://pastebin.com/pn0jsL7B Die Manpage wird von allen geöffnet, aber die anderen Befehle werden nicht ausgeführt. Wenn ich sie im Scratch-Puffer auswerte, funktionieren sie. UTF-8 vor 6 Jahren 0
Verwenden Sie `progn`, siehe Bearbeiten, die ich vor 15 Minuten erstellt habe sds vor 6 Jahren 0
Der einzige Unterschied ist, dass der Scratch-Puffer jetzt leer ist. So heißt es nicht ';; Dieser Puffer ist für Notizen [...] `, aber es gibt noch einen Rahmen für den Scratch-Puffer. UTF-8 vor 6 Jahren 0
Der Code in der Antwort funktioniert für mich mit und ohne "-nw" sds vor 6 Jahren 0
Ich habe es auf meinem Raspi ausgeführt, das eine andere Emacs-Konfiguration hat und die GUI nicht verwendet. Es verhält sich genauso wie auf meinem Laptop (aber ich muss nicht '-nw' übergeben), also noch 2 Frames vorhanden. UTF-8 vor 6 Jahren 0
Sie können versuchen, "delete-window" durch "delete-other-windows" zu ersetzen sds vor 6 Jahren 0
Es wird merkwürdiger. Ich hätte jetzt das Gleiche wie vorher erwartet oder der Man-Page-Puffer würde verschwinden. Es ist jedoch genau wie zuvor: 2 Frames (eines für den Scratch-Puffer und eines für den Man-Page-Puffer) und der Scratch-Puffer enthält das `;; Dieser Puffer ist für Notizen [...] `Text. Ich habe jetzt beide Varianten (`delete-window` und` delete-other-windows`) mehrmals eingegeben, anstatt sie zu kopieren, um 100% sicher zu stellen, dass es keinen seltsamen Schreibfehler oder unsichtbaren Charakter gibt, der sie dort durcheinander bringt. UTF-8 vor 6 Jahren 0
Bitte verwechseln Sie nicht Rahmen, Fenster und Puffer. sds vor 6 Jahren 0