I like Emacs. Maybe you like Emacs. I almost always have Emacs running on my Mac. I’d like to use Emacs as a general text editor. My Mac expects to use the
open protocol handler, and lots of Mac programs expect to be able to use
open or AppleEvents generally to ask for a file to be edited.
But how to connect that to
emacsclient -n? Well, Brian McCallister’s blog has a proposed way. It works well enough to work with Marked, at least. Build the following as an AppleScript application called Emacsclient, drop it in
/Applications/, and away you go.
on open of finderObjects tell application "Terminal" try -- we look for <= 2 because Emacs --daemon seems to always have an entry in visibile-frame-list even if there isn't set frameVisible to do shell script "/usr/local/bin/emacsclient -e '(<= 2 (length (visible-frame-list)))'" if frameVisible is not "t" then repeat with i in (finderObjects) -- there is a not a visible frame, launch one set p to POSIX path of i do shell script "/usr/local/bin/emacsclient -n " & quoted form of p end repeat end if on error -- daemon is not running, start the daemon and open a frame do shell script "/Applications/Emacs.app/Contents/MacOS/Emacs.sh --daemon" repeat with i in (finderObjects) set p to POSIX path of i do shell script "/usr/local/bin/emacsclient -n " & quoted form of p end repeat end try end tell end open -- bring the visible frame to the front tell application "Emacs" to activate
Having now built this, Nicholas Kirchner seems to have something similar—his is also careful to use the
quoted form of POSIX path.