Wie starte ich GUI Emacs über die Befehlszeile in OSX?
Ich habe Emacs von http://emacsformacosx.com/ heruntergeladen und installiert .
Ich akzeptiere eine Antwort, die alle folgenden Kriterien erfüllt:
- Das Emacs-Fenster öffnet sich vor meinem Terminalfenster.
- Durch Eingabe von "emacs" wird ein GUI-Emacs-Fenster geöffnet. Wenn Sie Dateien in diesem Fenster suchen, suchen Sie standardmäßig in dem Verzeichnis, in dem ich Emacs gestartet habe.
- Wenn Sie "emacs foo.txt" eingeben, wenn foo.txt vorhanden ist, wird ein GUI-Emacs-Fenster mit geladener foo.txt geöffnet.
- Wenn Sie "emacs foo.txt" eingeben, wenn foo.txt nicht vorhanden ist, wird ein GUI-Emacs-Fenster mit einem leeren Textpuffer namens "foo.txt" geöffnet. Wenn Sie ^ X ^ S in diesem Puffer ausführen, wird foo.txt in dem Verzeichnis gespeichert, in dem ich Emacs gestartet habe.
macos
emacs
command-line
Johan Walles
quelle
quelle
emacsclient -c -a "" "$@"
BefehlAntworten:
Nennen Sie das folgende Skript "emacs" und fügen Sie es
PATH
irgendwo ein:Das umfasst # 2, # 3 und # 4.
Fügen Sie dies für # 1 irgendwo in Ihre .emacs-Datei ein:
Auf der Website emacsformacosx.com befindet sich jetzt eine Seite mit Anleitungen , von der das oberste Snippet stammt. Dort gibt es weitere Informationen zum Laufen
emacsclient
und Anschließen von Emacsgit mergetool
.quelle
~/foo
und öffnen möchte, tippebar.txt
ich,gmacs bar.txt
aber es wird eine neue Datei erstellt,~/bar.txt
anstatt sie zu öffnen~foo/bar.txt
. Mache ich etwas falsch?Aliasen Sie in Ihrer Shell den Befehl 'emacs', um auf die OSX-Emacs-Anwendung zu verweisen
In meiner Shell (mit der Standard-Bash) habe ich Folgendes (in meiner .bashrc)
Wenn Sie dann emacs in die Befehlszeile eingeben, wird die emacs-Anwendung gestartet.
Ich würde jedoch empfehlen, dass Sie eine Kopie von Emacs öffnen und sie einfach am Laufen halten. Wenn dies der Fall ist und Sie eine Datei in eine vorhandene Kopie von Emacs laden möchten, können Sie den Emacsclient verwenden, indem Sie Folgendes in Ihre .bashrc-Datei einfügen:
Fügen Sie dann Folgendes zu Ihrer .emacs-Datei hinzu, um den Emacs-Server zu starten (der die Emacsclient-Aufrufe empfängt).
Dann können Sie tippen
um eine Kopie von .bashrc in eine vorhandene Emacs-Sitzung zu laden!
quelle
Dies verbessert die Antwort von David Caldwell, indem Emacs im Hintergrund gestartet wird:
Wie in der anderen Antwort angegeben, umfasst dies # 2, # 3 und # 4. Fügen Sie dies für # 1 irgendwo in Ihre .emacs-Datei ein :
(x-focus-frame nil)
.Beachten Sie, dass die folgenden Fälle nicht für mich arbeiten - es ist nicht Emacs startet in einem Verzeichnis auf der Kommandozeile angegeben (zB
emacs .
)quelle
Ich nehme an, Sie auch:
Wenn ja, dann erfüllt dies meiner Meinung nach die ursprünglichen vier Kriterien plus eines:
Es öffnet sich immer zum Vordergrund (mit X-Focus-Frame).
Es wird ein vorhandenes Emacs-Fenster im Dired-Modus geöffnet.
Wenn emacs bereits ausgeführt wird und einen Server hat, wird es im vorhandenen Fenster geöffnet und in den Vordergrund gerückt.
Richtig.
Ein Extra:
Die Steuerung kehrt unmittelbar nach Eingabe des Befehls zur Terminalsitzung zurück.
~ / bin / emacs
quelle
Auf Mountain Lion verwende ich den Port https://github.com/railwaycat/emacs-mac-port von Yamamoto Mitsuharu mit dem folgenden Alias:
und es erfüllt alle Ihre Kriterien.
quelle
Einfache Lösung ...
Viele sehr komplexe Lösungen für dieses Problem finden Sie hier. Das ist fair, weil es nicht trivial erscheint.
Diese Lösung funktioniert jedoch sehr gut für mich.
Verwendung
Packen wir aus, was passiert:
ec
Übergeben Sie alle Argumente an emacsclient und-n
warten Sie nicht ( ) auf emacs, bevor Sie fortfahren.2> /dev/null
)1
([[ $? == 1 ]]
)quelle
Gerade Emacs mit Homebrew Package Manager gemäß dieser Anleitung gebaut: http://www.emacswiki.org/emacs/EmacsForMacOS mit Brew Install --cocoa Emacs Danach sollte man die .app Version starten, um GUI zu bekommen, was in meinem Fall war /usr/local/Cellar/emacs/24.3/Emacs.app/Contents/MacOS/Emacs
quelle
Die Reaktion von David James weiter zu verbessern, funktioniert für mich wie folgt:
Anweisungen zum Öffnen einer Datei über ein Terminal finden Sie unter http://www.emacswiki.org/emacs/EmacsForMacOS#toc20
In Kombination mit der Antwort von David Jame habe ich das folgende Emax- Bash-Skript erstellt und es in meinen Pfad unter ~ / bin gestellt
Vorsichtsmaßnahme : Damit Emacs das aktuelle Verzeichnis im Modus " Dired by Name" öffnen können, müssen Sie Folgendes verwenden
Umgebung:
quelle
Die anderen Antworten hier haben bei mir nicht ganz funktioniert. Insbesondere auf meinem Computer das Bash-Skript
öffnet immer Emacs im Home-Verzeichnis. Um es im aktuellen Arbeitsverzeichnis zu öffnen, musste ich es tun
stattdessen.
quelle
Kompilieren Sie Emacs gemäß den folgenden Schritten:
Und fertig! Es kann hilfreich sein, XQuartz herunterzuladen und zu installieren, aber das ist nur meine Meinung.
quelle
Dies ist mein Skript für open emacs / emacsclient auf osx.
quelle
Stellen Sie in allen oben genannten Fällen bei Verwendung von "Öffnen" sicher, dass Sie die Option "--args" verwenden
Mach das nicht:
Stattdessen dies:
Die
--args
Option verhindert, dass "Öffnen" verschiedene für Emacs bestimmte Optionen verwendet.quelle