diff options
Diffstat (limited to 'content/post/using-emacsclient-on-macos/index.org')
-rw-r--r-- | content/post/using-emacsclient-on-macos/index.org | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/content/post/using-emacsclient-on-macos/index.org b/content/post/using-emacsclient-on-macos/index.org new file mode 100644 index 0000000..cc8019d --- /dev/null +++ b/content/post/using-emacsclient-on-macos/index.org @@ -0,0 +1,55 @@ +#+TITLE: Using Emacsclient on Macos +#+DATE: 2020-06-18T17:10:15-04:00 +#+DRAFT: false +#+DESCRIPTION: +#+TAGS[]: macos emacs +#+KEYWORDS[]: +#+SLUG: +#+SUMMARY: + +Emacs is an amazing editor, but it can be a little slow to start +sometimes. That's why =emacsclient= lets you run Emacs as a daemon and +connect to it as a client, negating the startup time and letting you +jump directly into editing. + +# more + +The two primary ways of getting Emacs onto your Mac are by either +downloading it from [[https://emacsformacosx.com/][Emacs For MacOS X]] or by installing it through +[[https://brew.sh/][homebrew]] using =brew cask install emacs=. I prefer the homebrew method +as it automatically adds =emacs= and =emacsclient= to your =$PATH=. + +Using it from the command line is a breeze. I have this alias in my +=.bashrc= + +#+BEGIN_SRC shell +alias em="emacsclient -t -a ''" +#+END_SRC + +This way I can type =em <filename>= to edit a file. =-t= tells +emacsclient to start in terminal mode, and =-a= tell it to start the +Emacs daemon process if it isn't already running. + +Getting the GUI version to run without first opening the command line +is a little trickier. Homebrew provides an app for =emacs=, but no way +to start =emacsclient=. The way I've worked around that is by using +[[https://github.com/deseven/icanhazshortcut][iCanHazShortcut]], which lets you bind arbitrary shell commands to +keyboard shortcuts. + +To add a new shortcut, open the app and click the =Shortcuts= tab at +the top. Then click the plus in the bottom right corner, click inside +the =Shortcut= field, press the desired shortcut keys, give it an +action name, and a command. + +To launch =emacsclient=, I have a shortcut bound to +@@html:<kbd>⌃</kbd> + <kbd>⇧</kbd> + <kbd>⌘</kbd> + <kbd>E</kbd>@@ +which runs +#+BEGIN_SRC shell +emacsclient -c -n -a '' +#+END_SRC + +The =-c= flag tells =emacsclient= to open a GUI window instead of in +terminal mode. The =-n= flag tells the command to return once the +window is opened, instead of waiting for the client to close. Finally, +like before the =-a ''= flag tells =emacsclient= to start the Emacs +daemon if it isn't already running. |