Alcune informazioni su ciò che sto cercando di ottenere
Sto usando emacs all'interno del terminale. So dell'esistenza di versioni di cacao di emacs (come GNU Emacs per OS X , Aquamacs e Porta Mac Emacs ). Ma preferisco inserire il codice all'interno del terminale.
Tutto è a posto nel mio setup tranne il fatto che a volte voglio aprire il file all'interno di emacs dal Finder o da qualsiasi altro software. Quindi ho bisogno di trovare il processo in esecuzione di emacs nel terminale o crearne uno nuovo e aprire la fine all'interno di eseguire emacs.
Quindi in pratica ho bisogno di creare un wrapper .app
per aprire i file in emacs del terminale.
Cerca di farlo
Per quanto ho capito, open -a my_emacs_app /path/to/file
è uguale all'apertura del file nell'applicazione dal finder. Ecco perché sto testando my_emacs_app
usando il comando open
.
Il mio primo tentativo è creare un'applicazione usando AppleScript. Ecco il codice che elabora gli argomenti passati:
on run argv
if (count of argv) > 0 then
-- get file path from argv
-- and log to logfile for testing purposes
return "defined"
else
-- no args means no file
-- log to logfile that we can't extract file path
-- from empty arguments
return "failed"
end if
end run
E in effetti funziona quando provo a eseguirlo usando
$ osascript my_emacs_app.scpt /path/to/file
Apre il file e registra ciò che si prevede di registrare il file.
Quando lo eseguo utilizzando
$ osascript my_emacs_app.scpt
Registra nel file che non sono stati passati argomenti.
Quindi ero felice con esso. Ma ricorda, ho bisogno di un wrapper .app
. Quindi sto esportando questo script come applicazione (e lo colloco all'interno della cartella /Applications/
). E poi quando provo a
$ open -a my_emacs_app /path/to/file
Vedo che l'applicazione viene eseguita per un breve periodo e quindi viene chiusa. Ma non succede nulla di buono. Voglio dire, il file non è aperto in emacs e nulla è registrato nel file di log.
Qualcuno sa, come esportare tali script?