Editor support

As discussed in the quickstart there are Extempore plugins for several popular editors. This page shows how to set things up and lists any editor-specific instructions (e.g. the specific names of the commands & keybindings).

If you don’t have a favourite text editor, or don’t really know what a text editor is, then that’s ok! VSCode is probably the text editor for you.


Visual Studio Code, which is usually referred to as just VSCode, is a cross-platform text editor from Microsoft. For a general introduction to VSCode, check out the excellent docs.

VSCode has an Extempore extension, so it knows how to work with Extempore code. The VSCode setup instructions are actually listed in the quickstart guide already, so you should head over there and get started.


extempore-emacs-mode is the Emacs mode for working with Extempore code, and it’s available from MELPA. If you’re using package.el (i.e. if you’re on a modern-ish Emacs) then just M-x package-install RET extempore-mode RET and you’re done.

If you encounter an error with eldoc-beginning-of-sexp, put this code in your init file to bind that name

(unless (fboundp 'eldoc-beginning-of-sexp)
  (defalias 'eldoc-beginning-of-sexp 'elisp--beginning-of-sexp))

If you don’t want to get it from MELPA, just download the file and put it in your load path.

Ben’s a Spacemacs user these days, and has created an Extempore layer (although he hasn’t got around to getting it accepted in the main spacemacs layer repo or however that works, so you’ll need to do a bit of downloading & manual setup stuff to get it working).

command keybinding
switch-to-extempore (or start Extermpore if it’s not running) CTRL+C CTRL+Z
extempore-connect-or-disconnect () CTRL+C CTRL+J
extempore-send-dwim (to evaluate current top-level form or region) CTRL+META+X
extempore-send-region CTRL+C CTRL+R
extempore-send-buffer CTRL+C CTRL+B

To restart the Extempore process, just CTRL+C CTRL+C in the *extempore* buffer where extempore is running to kill it, then start it up again with switch-to-extempore.


Extempore’s Atom package is available from GitHub.

command keybinding
Extempore Connect ALT+O
Extempore Disconnect ALT+X
Extempore Evaluate ALT+S

Sublime Text

Extempore’s Sublime Text plugin is available from GitHub.

command keybinding

Known issues

The syntax highlighting currently doesn’t cover a few edge cases—so if you end up tinkering with Extempore.JSON-tmLanguage to fix anything then feel free to submit a pull request.


Extempore’s vim plugin is written by Tim Burgess.

command keybinding
open connection to Extempore LEADERo
close connection to Extempore LEADERx
send enclosing block to Extempore LEADERw
send selection to Extempore LEADERs
send entire file to Extempore LEADERa

The vim mode doesn’t yet support multiple connections or user-specified host/port, but pull requests are welcome.

Improve this page