I know three ways to run a LISP in Emacs. First, you can run Emacs' own LISP (called ELISP). Second, you can run another LISP program (which Emacs calls an "inferior lisp") in an Emacs buffer. Third, you can run the SLIME mode in Emacs, which attempt to give you the best of both worlds. ----------------[ Emacs's own ELISP ]---------------- This only needs an installation of emacs, and nothing else. This works either from the command-line Emacs or Acquamacs http://aquamacs.org/ . The latter is more MacOS-friendly, but it got its buffers confused in class to the point that error messages were impossible to find---so embarrassing. Still, it should work fine if you only keep one code window. In a fresh Emacs window, type ESC-x lisp-interaction-mode . That will turn your buffer into a LISP terminal; pressing Ctrl+j will feed the s-expression that your cursor (called "point" in Emacs manuals' jargon) stands right behind to LISP, and will print the result. Note: if your cursor (point) is in the *middle* of an s-expression, you will feed to LISP _only the part that's before your cursor_, and may get an error screen. This mode is described here: https://www.gnu.org/software/emacs/manual/html_node/emacs/Lisp-Interaction.html#Lisp-Interaction There is another way to run ELISP interactively: ESC-x ielm . It looks a lot more like a real shell such as GCL's, and tab completion also works. It also gives you multi-line editing. See which one you like better. ----------------[ Running an "inferior" LISP ]---------------- Described here: https://www.gnu.org/software/emacs/manual/html_node/emacs/External-Lisp.html#External-Lisp I have (setq inferior-lisp-program "sbcl --noinform --no-linedit") in my ~/.emacs to run SBCL as my "inferior lisp". I normally run it like this: I open a LISP file, then split the buffer in two with C-x 2 and then switch to the second buffer with C-x o and then type there M-x run-lisp . Now I have two buffers, one with the file I am editing, the other with the LISP console. I can switch between them at any time with C-x o (o for "other"), and execute any LISP expression my cursor ("point") is in by typing Esc-C-x . See also: http://www.cs.uni.edu/~wallingf/teaching/161/lab/lisp/tools_emacs.html This page gives examples of many useful commands for switching between buffers, etc. ----------------[ SLIME mode ]---------------- This mode is meant to be a complete LISP IDE, better than any other shell. I am running this with SBCL, after installing Quickload (see using-lisp-libraries.txt) and calling (ql:quickload "quicklisp-slime-helper") as per advice in http://www.jonathanfischer.net/modern-common-lisp-on-osx/ . This mode seems to combine the tab-completion and LISP function documentation hints with the convenience of the command line interaction mode. It is a bit aggressive about giving you hints on what you might want to type next, but the hints go away automatically as you keep typing. Let me know if you run into any issues with this mode. --------------[ Lisp mode for Vim? ]---------- There seems to be one: http://kovisoft.bitbucket.org/tutorial.html That's all I know.