Wie kann ich die Emacs 24.x-App unter Mac OS X im Daemon-Modus ausführen?

7

Ich möchte die Emacs.app im Daemon-Modus unter Mac OS X ausführen. Ich kann Emacs im Daemon-Modus über das Terminal ausführen, aber Anweisungen zum Ausführen der App in einem Client-Server-Muster funktionieren nicht (z. B. http: // Oberton) .github.io / emacs-live / doc-Starting.html (existiert noch /Applications/Emacs.app/Contents/MacOS/bin/emacsclientnicht) mit den neuesten Versionen von Emacs.

Wie kann ich die Emacs 24.x-App unter Mac OS X im Daemon-Modus ausführen?

Meine Ziele sind, den Server beim Start zu starten (was ich zu tun weiß) und beim Starten eines Clients einen neuen Frame in der App-Version von Emacs zu starten, die bereits ausgeführt wird.

pwalsh
quelle
Ich verwende Emacs.app 24.4 von emacsformacosx.com und es enthält emacsclient. Welchen Build verwendest du?
Alan Shutko
Ich
renne

Antworten:

1

Ich habe https://korewanetadesu.com/emacs-on-os-x.html verwendet und es hat gut funktioniert, aber kürzlich habe ich Emacs über 'Brew' installiert und es funktioniert viel besser (weniger Aufwand und bessere Daemon-Erfahrung) für das Daemon-Teil: http://www.emacswiki.org/emacs/EmacsForMacOS#toc16

Sobald Sie es installiert haben, heißt es, dass Emacs beim Start geladen werden sollen. Führen Sie Folgendes aus:

$ ln -sfv /usr/local/opt/emacs/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.emacs.plist
Galder Zamarreño
quelle
Ich benutze auch die Homebrew-Version. Ihre Antwort hilft beim Starten der App im Daemon-Modus. Wenn ich mich jedoch mit einem Client verbinde, wird beispielsweise emacsclient -ceine neue 'Instanz' der App im Dock erstellt, anstatt ein neues Fenster oder einen neuen Frame in meiner aktuellen Emacs-Instanz zu starten. Stimmt das mit Ihrem Verhalten überein?
Pwalsh
Ich benutze nie emacsclient. Ich starte emacsdirekt und laufe schnell genug für mich. Ich weiß nicht viel darüber, aber ich vermute, dass diese beiden oben erwähnten Operationen das emacsLaden beschleunigen . Bei der Verwendung der "korewanetadesu" -Vorschläge stellte ich fest, dass bei der Verwendung emacsserver, bei der eine Instanz der App im Dokument erstellt wurde, diese manchmal hängen blieb.
Galder Zamarreño
Das ist großartig, aber die Frage ist eindeutig, ob beim Starten eines Clients im Dämonmodus eine Verbindung zur App hergestellt werden soll.
Pwalsh
In melpa gibt es ein Paket namens osx-pseudo-daemon, das einen Blick wert sein könnte.
Tim X
@pwalsh Um Emacs im Daemon-Modus auszuführen, launchctrlstartet der obige Befehl einen Emacs-Prozess für Sie. Um einen neuen Frame zu emacsclient -n -c erstellen, gehen Sie wie folgt vor : Das Emacs-Symbol wird im Dock angezeigt. Es bleibt im Dock, bis der durch launchctrl (emacs -daemon) gestartete Prozess beendet oder beendet wird. Sie können auch emacsclient -tin einem Terminal verwenden. Beide Befehle stellen eine Verbindung zur Emacs-Daemon-Instanz her. Wenn die Instanz nicht ausgeführt wird, geben die Befehle einen Fehler aus.
Xmonk
1

Ich habe auch Probleme beim Versuch, Emacs als Daemon in OS X auszuführen. Daher habe ich einen "Pseudo-Daemon" -Modus geschrieben, der nur einen neuen versteckten GUI-Frame erstellt, wenn Sie den letzten Frame schließen. Das Ergebnis ist, dass sich Emacs nur dann im Dock versteckt, wenn es normalerweise beendet wird. Dies bietet eine überraschend gute Annäherung an den Dämonmodus, während das Dock-Symbol funktionsfähig bleibt. Sie können es von MELPA erhalten: https://melpa.org/#/mac-pseudo-daemon

Ryan C. Thompson
quelle