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:

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:

If you’ve removed contribs from the list they won’t be unloaded
automatically.

If you have more than one SLIME connection currently active, you must
manually repeat the slime-setup step for each of them.

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.