https://github.com/jpalardy/vim-slime
I don't know if it's as powerful as the real thing, but it allows you to "send" your current vim line or paragraph to a tmux instance running a lisp interpreter, essentially. Very useful.
The feedback loop is probably the best in class from anything i have ever used. No IDE comes even close.
Do you use a keyboard with mappings to make it easier? Rely on the editor to insert them for you?
(defun hello (name)
(format t "Hello, ~A!" name)) ;; 6 parens, 6 shift keys
def hello(name):
print(f"Hello, {name}") # 4 parens, 2 curlies, 6 shift keys
void hello(char* name) {
printf("Hello, %s\n", name);
} // 4 parens, 2 curlies, 6 shift keys
No real difference for typing.i always have problems with keys that have no obvious dedicated finger position like the middle vertical columns especially 6 and b and of course keys reachable on the right pinky, especially \ and =
And besides:
print("Hello World");
requires just as much chording as: (print "Hello World")i think the powerful feature is not (only) merely sending code to repl
but the suggestion for function's parameter as the function is updated to repl
for example: (defun xyz (a &option b &rest c &key d) ) ;then send this with ,d (vim+slimv) to swank server
the next time i type (xyz ... vim status bar conveniently states: (xyz a &optional b &rest c &key d)
both happen whether i start typing (xyz in repl or in vim; that's it, the function parameters show up as suggestions in repl and in editor
Though because I’ve had nothing to actually apply it to, it just gets forgotten about - that was until I decided to go all in on Emacs again about a year ago. And fancy that - I’ve written so much lisp (Elisp) in the past few months that even diving into Emacs extensions is t daunting anymore for me.
Want to get started? Force yourself to use it every day. Throw yourself in the deep end - start from a vanilla Emacs setup, and each time something bugs you, stop and figure it out (what’s the function, variable, face, etc that needs changing, or do you have to write a few function to get what you want done) - it’s a friggen superpower!!!
Nolan: That's the neat thing—you don't.
One of the interesting and, depending on your perspective, perhaps unfortunate side effects of LLM-assisted development becoming the standard is that LLMs almost completely disincentivize choosing an unpopular language for serious work. Due to the much higher volume of training data, you're better off using TypeScript, Go, or Rust (or Swift if you're in Apple-land or Kotlin if you're in Android dev hell). Those languages with an LLM will make you far more productive than even an "expressive" language like Lisp.
Plus there are complete, modern IDEs for those that let you get started right from the jump, rather than having to build your own IDE out of Emacs and assorted parts before you can actually develop your application.
If anything I perceive a bit more mistakes when I have to do things in TS (and in a way simpler domain, in a way smaller project).
SBSL+SLIME+Emacs usually put one in the flow state in no time. That’s what keeps amazing me and keeps me productive.
And then, Claude seems to be quite alright discussing tricky Common-Lisp-related stuff.
This is an experience that is 15 years out of date.