Next: , Up: Contributed Packages


8.1 Loading Contrib Packages

Contrib packages aren't loaded by default. You have to modify your setup a bit so that Emacs knows where to find them and which of them to load. Generally, you set the variable slime-contribs with the list of package-names that you want to use. For example, a setup to load the slime-scratch and slime-editing-commands packages looks like:

     ;; Setup load-path and autoloads
     (add-to-list 'load-path "~/dir/to/cloned/slime")
     (require 'slime-autoloads)
     
     ;; Set your lisp system and some contribs
     (setq inferior-lisp-program "/opt/sbcl/bin/sbcl")
     (setq slime-contribs '(slime-scratch slime-editing-commands))

After starting SLIME, the commands of both packages should be available.

The REPL and slime-fancy modules deserve special mention. Many users consider the REPL (see REPL) essential while slime-fancy (see slime-fancy) loads the REPL and almost all of the popular contribs. So, if you aren't sure what to choose start with:

     (setq slime-contribs '(slime-repl)) ; repl only

If you like what you see try this:

     (setq slime-contribs '(slime-fancy)) ; almost everything

8.1.1 Loading and unloading “on the fly”

We recommend that you setup contribs before starting SLIME via M-x slime, but if you want to enable more contribs after you that, you can set the slime-contribs variable to another value and call M-x slime-setup. Note this though:

Short of restarting Emacs, a reasonable way of unloading contribs is by calling an Emacs Lisp function whose name is obtained by adding -unload to the contrib's name, for every contrib you wish to unload. So, to remove slime-repl, you must call slime-repl-unload. Because the unload function will only, if ever, unload the Emacs Lisp side of the contrib, you may also need to restart your lisps.