I have been using Aquamacs for over 5 or 6 years now, but I recently decided to go back to a simpler version of Emacs, namely the latest build of Emacs for OS X.
Why? There are several reasons:
.elfiles in my
.lisp.ddirectory, and almost half of them are outdated.
Everything started with my looking at the overtone project (following a post mirrored on Planet Clojure). There’s a nice screencast on the Github website, and I also found this one:
So basically, the author customized his emacs with a lot of add-ons, especially to assist coding activity: auto-complete, snippets, connection to various REPLs, etc. I wanted to do the same, but without using the complete overtone configuration files. That’s almost done!
Be sure to grab one of the 24.* series in the build repository. I personally choose the 24.1-rc pretest version. I haven’t had any problem so far.
To configure ELPA, we can add the following two lines in our
(setq package-archives '(("marmalade" . "http://marmalade-repo.org/packages/") ("tromey" . "http://tromey.com/elpa/")))
This will add Marmalade as well as Tromey ELPA to the default GNU repository. Something that’s really important is to configure the keyboard; in order to exchange command the option (⌥) and command (⌘) keys, I just added
(setq mac-option-modifier 'none)
Otherwise, we cannot type symbols like
~ (Alt-n), or use square brackets (which is pretty sad when writing R code :-). Other customizations can be added, for example to make the connection with Mac
pbpaste more transparent.
I was aware of Yasnippet, which is inspired from Textmate, but I just gave it a try in the past. Now, I’m using it and it seems the trigger key (⇥) is not too intrusive when I’m typing.
I am also trying to familiarize myself with ido-mode that I’ve never used:
(require 'ido) (ido-mode t)
My first impressions were disconcerting, but now I seem to get used to it. I just have to remember that I now have to C-d to get into
dired-mode for browsing content of a directory.
.emacs is not entirely clean at the moment: I need to investigate the autoload vs. require issue more carefully. For the moment, I am quite happy with the configuration of Lisp, Clojure, R, and Python. I can connect to Slime using either
lein swank or
M-x clojure-jack-in from within Emacs. For R, I have Yasnippets working right out of the box, together with other goodies from ESS. I was previously using the Stata ado-mode, but
ess-mode provides most of the basic functionalities I need for interacting with Stata.
An example of an interactive R session is shown below:
Top panel shows how Yasnippet prompting tool is triggered when pressing tab (⇥), while bottom panel shows available arguments when typing
rnorm in the R shell directly.
Here is another screenshot which show the beginning of a clojure script with auto-completion and a running
lein shell (left), and one (right) with two buffers with Yasnippet providing basic construction of a
defn in Clojure (top), or suggesting methods in Python mode (bottom).
Finally, this configuration works equally well when Emacs run in a Terminal (
nw), as can be seen below: