From 826c24e0fe1e47baf1d64d315ccff46c7e7a93df Mon Sep 17 00:00:00 2001 From: Dante Catalfamo Date: Thu, 18 Jun 2020 18:58:56 -0400 Subject: Most post to posts --- content/posts/using-emacsclient-on-macos/index.org | 60 +++++++++++++++++++++ .../macos emacsclient.png | Bin 0 -> 108919 bytes 2 files changed, 60 insertions(+) create mode 100644 content/posts/using-emacsclient-on-macos/index.org create mode 100644 content/posts/using-emacsclient-on-macos/macos emacsclient.png (limited to 'content/posts/using-emacsclient-on-macos') diff --git a/content/posts/using-emacsclient-on-macos/index.org b/content/posts/using-emacsclient-on-macos/index.org new file mode 100644 index 0000000..d1b90fc --- /dev/null +++ b/content/posts/using-emacsclient-on-macos/index.org @@ -0,0 +1,60 @@ +#+TITLE: Using Emacsclient on MacOS +#+DATE: 2020-06-18T17:10:15-04:00 +#+DRAFT: false +#+DESCRIPTION: +#+TAGS[]: macos emacs +#+KEYWORDS[]: +#+SLUG: +#+SUMMARY: + +#+ATTR_HTML: :alt MacOS Emacsclient +#+ATTR_HTML: :title MacOS Emacsclient +[[file:macos%20emacsclient.png]] + +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. + +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 = 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: + + + E@@ +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. + +Now all I have to do is press @@html: + + + E@@ +and a new Emacs window pops up with no startup delay! diff --git a/content/posts/using-emacsclient-on-macos/macos emacsclient.png b/content/posts/using-emacsclient-on-macos/macos emacsclient.png new file mode 100644 index 0000000..371fc2f Binary files /dev/null and b/content/posts/using-emacsclient-on-macos/macos emacsclient.png differ -- cgit v1.2.3