Cocoa Emacs kann nicht vom Terminal aus mit „open -a“ geöffnet werden

Cocoa Emacs kann nicht vom Terminal aus mit „open -a“ geöffnet werden

Ich habe Emacs auf meinem MacBook Air mit Mac OS X 10.6.5 von dieser Site installierthttp://emacsformacosx.com/. Ich glaube, das ist das, was früher Cocoa Emacs hieß. Ich habe es in meinen Anwendungsordner gezogen und wenn ich es von dort ausführe, funktioniert es einwandfrei. Ich möchte es vom Terminal aus ausführen können. Nach einigem Googeln habe ich es versucht open -a /Application/Emacs.app foo.txt(foo.txt war eine vorhandene Datei). Ich habe zwei Emacs-Fenster bekommen – eines mit Willkommensbildschirm und eines mit geladenem foo.txt. Ich habe ein paar Anwendungen im Verzeichnis /Applications ausprobiert und sie schienen sich nicht so zu verhalten. Ich hatte es mit meinem eigenen Konto (einem Administratorkonto) installiert, also bemerkte ich ls -ldanach /Application, dass Besitzer und Gruppe sich von den anderen Einträgen in diesem Ordner unterschieden. Ich habe Besitzer und Gruppe rekursiv in root und wheel geändert, wie bei den anderen, aber das hat nicht geholfen. Das einzige, was jetzt komisch aussieht, ist, dass dort ls -l ein @-Zeichen anzeigt, das etwas mit erweiterten Attributen zu tun hat, aber ich weiß nicht, wie ich diese überprüfen kann.

Irgendwelche Vorschläge, was als nächstes zu überprüfen ist?

Kann das Programm nur mit dem Open-Befehl ausgeführt werden? Kann ich mit einem Shell-Skript simulieren, was es tut?

Antwort1

Sie verstehen die openFunktionsweise falsch: Mit Ihrem Befehl open /Application/Emacs.app foo.txtweisen Sie an open, zwei Dateien zu öffnen, nämlich Emacs und die txt-Datei, aber dies sind zwei verschiedene Vorgänge: Zuerst wird Emacs gestartet und dann foo.txtdas Standardprogramm für Dateien geladen .txt, was in Ihrem Fall anscheinend Emacs ist.

Solange Emacs der Standard für diesen Dateityp ist, open foo.txtwürde die Datei durch einfaches Verwenden von in Emacs geöffnet werden. Wenn dies jedoch nicht der Standard ist, müssen Sie verwenden open foo.txt -a /Applications/Emacs.app(der Schalter teilt open mit, welche Anwendung verwendet werden soll) oder Sie können es als Parameter mit der folgenden Option -aübergeben : .--argsopen /Applications/Emacs.app --args foo.txt

Antwort2

Das ist eigentlich ein bisschen seltsam; für meine Installation (die ich mit Homebrew gemacht habe) funktioniert open -a Emacs file.txt einwandfrei … vielleicht solltest du deine LaunchServices-Datenbank neu aufbauen? Aber wie auch immer, du solltest in der Lage sein, die ausführbare Datei direkt mit

/Applications/Emacs.app/Contents/MacOS/Emacs file.txt

verwandte Informationen