Some folks have asked me about my Common Lisp set-up. Since it uses Vim, it’s pretty unique off-the-bat. I wanted to describe it in more detail.
I use Edi Weitz’s rlwrap
Rlwrap is actually a pretty
feature-rich tool. One of my favorite
things about rlwrap is that you can use an external editor (
fits in really nicely with vim. It calls vim, and I can copy and paste from
registers or what have you. This is useful when I want to edit my commands, but
not “save” them. They are experiments I run as part of exploring the code space
that I don’t want to put in my final copy.
Thus, I put this script in my PATH and call it when I need the REPL:
LIBRARAY_PATH are important to me because I use Embedded Common Lisp. You may not need those lines if you are using SBCL.
Then, I use vim-sexp and vim-slime from the Vim side.
Here is how I start up my environment. In one of my projects, I have automated this.
Here is a list of use cases, and how I do them with my set-up:
|Start up GNU Screen||
|Name the window
|Start the REPL||
|Start new window||
|Start up the editor||
My editor is configured to automatically send information using vim-slime to
the window named
so naming it is important for me.
Here is a short list of common use cases and how I address them with my set-up.
||Evaluate whole file in REPL|
||Switch to REPL or back to editor|
||Open editor in REPL|
||Evaluate top-level form in REPL|
||Evaluate current form in REPL|
||View docs of
Many other interesting combinations of key presses can be made up by consulting
vim-slime and vim-sexp documentation. See
:help slime and