Ich habe kürzlich meinen ersten Mac seit einem Jahrzehnt gekauft und bin dabei, ihn zu konfigurieren. Ich bin ein Emacs-Benutzer und habe festgestellt, dass ich nur normale Emacs und keine Aquamacs verwenden möchte, damit ich meine vorhandene Konfiguration von anderen Betriebssystemen aus verwenden kann. Ich habe versucht, viele Anleitungen zu befolgen, die ich online gefunden habe (wie diese , diese und diese von der Site, von der ich Emacs heruntergeladen habe ), und habe versucht, die Teile auf verschiedene Arten zu kombinieren, aber noch nie Dinge in einen Zustand gebracht, der sich sogar dem nähert, was ich gewohnt bin / auf das ich gehofft habe:
- Ein Emacs-Daemon wird entweder beim Start oder sobald ich ihn benötige ausgeführt . entweder ist in Ordnung. Alle neuen Emacs-Frames werden von demselben Server unterstützt.
- Wenn ich eine Textdatei über den Finder öffne, wird die Datei in Emacs geöffnet, wenn möglich in einem vorhandenen grafischen Rahmen.
- Wenn ich Emacs.app ausführe, verwendet das System den im Hintergrund ausgeführten Emacs-Daemon erneut, anstatt eine neue Instanz zu starten und ein neues Fenster darauf zu öffnen. ( Hutspitze )
- Wenn ich Emacs von einem Terminal aus starte, erledigt das Terminal seine Geschäfte, ohne darauf zu warten, dass ich mit Emacs fertig bin (es sei denn, ich verwende '-nw').
- AFAIK sollte Emacs zu keinem Zeitpunkt während der oben beschriebenen Vorgänge in einem Zustand ("Server-Bearbeitungsmodus?") Befinden, in dem ich auf die Eingabe warte
C-x #
, obwohl ich kein tiefes Verständnis für diesen habe. - (Ich würde dies als Bonus betrachten.) Es gibt eine Möglichkeit für mich, Emacs von einem Terminal aus aufzurufen, damit Emacs einen vorhandenen Frame nach Möglichkeit wiederverwendet.
Wie könnte ich Emacs so konfigurieren, dass es sich so verhält?
Ich bin besonders ratlos, wenn ich den Finder dazu bringe, Dinge in Emacs so zu öffnen, wie ich es möchte (# 2), da die Anleitungen, die ich gefunden habe, im Allgemeinen eine Reihe von Aliasnamen, Applescripts, Bash-Skripten usw. erstellen und ich nicht sicher bin Ich möchte dem Finder mitteilen, dass er zum Öffnen von Textdateien verwendet werden soll.
Vielen Dank!
A. @lawlist fragt: "Wird standardmäßig ein neuer Frame geöffnet, wenn Sie eine neue Datei vom Terminal aus öffnen, obwohl ein Frame vorhanden ist?" Die Antwort lautet: Wenn ich einen Server wie hier beschrieben beim Start starte , einen Frame öffne und dann eine Datei durch Eingabe öffne /Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n <whatever>
, kann ich die Datei in einem vorhandenen Frame öffnen. Wenn derzeit kein Frame geöffnet ist, muss ich "-nc" verwenden oder wenn ich versuche, eine Datei zu öffnen, passiert nichts.
B. @lawlist fragt: "Möchten Sie, dass der Dämon beim Anmelden ausgeführt wird, oder reicht es aus, Emacs nach dem Anmelden manuell zu laden?" Manuell laufen wäre in Ordnung.
M-x server-start
startet den Server manuell, emacsclient
damit er mit ihm kommunizieren kann. Ich habe (server-start)
in meine init.el
Datei eingefügt, anstatt beim Anmelden einen Daemon zu verwenden. Viele Benutzer bevorzugen jedoch die Anmeldeoption für den Daemon. Und natürlich .emacs
wäre die Datei ein geeigneter Ort für (server-start)
.
ns-find-file
- wird automatisch aktiviert, wenn eine Datei mit Emacs.app verknüpft ist. Meine Intercept-Datei-Funktion in den obigen Links ändert sich auch, ns-find-file
wenn Sie daran interessiert sind. Natürlich muss Emacs gebaut werden --with-ns
.