Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Does anyone Lisp without Emacs?
17 points by potta_coffee on Nov 7, 2023 | hide | past | favorite | 21 comments
EMACS and SLIME are the default development tools for Lisp. I have a desire to go deeper with Lisp but every time I approach it, my distaste for EMACS prevents me. My problem with EMACS is not so much that it's different, but the keyboard commands hurt my hands and I can't see using it long-term. I do Jiu Jitsu and practice guitar every day and I already find that I have to be somewhat protective of my hands and limit certain activities or I end up in lots of pain. I'm looking for viable alternatives to EMACS for Lisp, preferably something free because I'm just doing this as a hobby.



There is Alive for Visual Studio Code: https://lispcookbook.github.io/cl-cookbook/vscode-alive.html

If you prefer Vim, there are two major options: https://susam.net/blog/lisp-in-vim.html


You can remap everything in emacs (see evil-mode, vim for emacs) so you’re not tied to the ctrl-meta nightmare. There are vim plugins too, but not as integrated.

You can also uses a normal editor and copy-paste to the REPL.


Is there also something between emacs kraken keys and vims modal keys? It's not that I have a problem with modal modes, but vims focus on navigation is just not matching my habitual thinking.


Have you looked at devil-mode? If by Kraken you mean key chords, devil-mode lets you type without key chords but it does not force modal editing on you.


2 stripe blue belt here! I used to use Vim for everything other than Java development and have now adopted Emacs in the same way. I am using it for Clojure and Common Lisp development along with org mode, irc, rss, git and file management

I started with Evil mode and then moved to Xah fly keys before sticking to the emacs bindings. Having the caps lock key bound to CTRL helped me a lot. I don't know if it makes that much of a difference for Emacs but using the DVORAK layout has helped my fingers

There are other bindings you can try like Meow or God mode but I don't know what the adoption rate is like for them. Emacs gives you the flexibility to set it up as you please. As others have mentioned, there may be other keyboard options that might be more helpful as well

https://github.com/emacs-evil/evil

http://xahlee.info/emacs/misc/xah-fly-keys.html

https://github.com/meow-edit/meow

https://github.com/emacsorphanage/god-mode


Thanks for the info, I'll check these out.

I'm also a blue belt.


As a musician myself I am also quite protective about my hands but also a daily emacs user. The biggest ergonomic improvement you can make on a standard keyboard is to remap your control key to be command (most regular emacs users I know do this). At work I use a Kenesis Advantage keyboard which allows me to use my thumbs as modifiers which is even more comfortable.

To answer your question, if you are not looking for particular LISP I would checkout Racket as I think that has a non-emacs IDE.


I've done all my Lisp work in Vim, including developing TXR and TXR Lisp.


When I first opened emacs many years ago I wanted to punch my monitor because ctrl-c and ctrl-v didn't work. I HATED it. However every person is different. Today Im a heavy user of emacs and I don't have any of the issues you mentioned. In fact I now hate being forced to use any other tool to edit text. Where possible, I use emacs key bindings in non-emacs applications (terminal, browser, window manager). My emacs setup is almost vanila. That said, I'm comfortable to customize emacs keybindings to my own preferences. For example, I hated pressing S-9 to initiate parens so I bound that to something more ergonomic for me.

If your problem with emacs is only due to key bindings my advice to you is stick to emacs for at least editing your lisp code. In my opinion Emacs+SLIME (or SLY) is an unrivaled experience, not just when it comes to writing common lisp code, but compared to writing any other code in any other IDE. Instead look at increasing your lisp writing ergonomics in emacs. First recommendation I have is to use a structural editor like paredit. Look at few videos at emacsrocks to see how this works. This is one of the things that now makes me dread editing code that doesn't use s-expressions.

My other suggestion is to look into spacemacs or doom emacs. These are emacs distributions with vim (or hybrid) keybindings that go well beyond what you can do in vim itself. When I decided to give emacs another go it was largely thanks to spacemacs that I am now a heavy emacs user. It wasn't because of vim bindings (I don't care for these to be honnest) but because it demonstrated the things emacs can do.

One benefit of learning emacs is that it really is a tool for life.

https://www.spacemacs.org/

https://paredit.org/


My impression is that GNU Emacs in general has awful (default) keybindings. Specifically the keybindings of SLIME are among the worst of any Lisp IDE. Use c-h m to see the keybindings of a Lisp editor buffer. It's what it is and a reason for that are the GNU Emacs keybindings in general.

Just check the keybindings of anything eval in SLIME for a Lisp file buffer:

  C-x C-e
  C-M-x
  C-c C-p
  C-C C-r
  C-c :
Evaluation of Lisp code is central to Lisp. But the keybindings are just awful. Generally getting rid of one layer of prefix keys would be a start.

GNU Emacs also still believes that my Mac has a Meta and a Super key. It hasn't. Every new user has to learn keys which are not labelled on any typical keyboard produced in the last 30 years.

My Lisp Machine keyboards from the 1980s have Meta, Super, Hyper keys, though.


> C-x C-e

> C-M-x

I use the first 2 keybindings you mention only with emacs lisp; the other 3 I had to look up.

I get a lot of milage from these:

  C-c C-c ;; slime-compile-defun
  C-c C-k ;; slime-compile-and-load-file
  C-c C-j ;; slime-eval-last-expression-in-repl
  C-c C-y ;; slime-call-defun
... with C-c C-c probably the one I use the most, and it's pretty easy on the hands.


Even the documentation is wrong. For C-c C-c

The name slime-compile-defun indicates that it compiles DEFUN forms.

It actually compiles AND executes top-level forms.


The name is misleading. The document omits the part about executing top level forms. It does mention compiling them, though:

"[...] Compile the current toplevel form.

With (positive) prefix argument the form is compiled with maximal debug settings (‘C-u’). With negative prefix argument it is compiled for speed (‘M--’). If a numeric argument is passed set debug or speed settings to it depending on its sign."


> GNU Emacs also still believes that my Mac has a Meta and a Super key. It hasn't. Every new user has to learn keys which are not labelled on any typical keyboard produced in the last 30 years.

Lol yep. When I figured that M-x means just Alt-x on my keyboard i was pretty peeved. Today I see it as a rite of passage.


Yes I'm on Mac and to boot, my keyboard is one of those smaller ones and I'm definitely missing some of the expected keys. I get that Emacs is customizable but it's a bit unapproachable when I want to dive into coding.


If I recall correctly, on my mac I had an issue with the meta and super keys. I had to rebind Meta to Cmd and Super to Opt. Im pretty sure I used Bozhidar Batsov's solution for this.

Another reason for you to stick to Emacs is Emacs Lisp. If you enjoy writing lisp you are not going to find a better piece of software written in any other lisp language. I prefer common lisp to elisp (alot!) but this is a fact in my opinion. Plus elisp is somewhat similar to common lisp and learning/appreciating the differrnces between the two will make you a better lisp programmer.

https://github.com/bbatsov/prelude/blob/master/core/prelude-...


Racket (https://racket-lang.org) has an IDE (DrRacket) which isn't EMACS. ARC (which powers hacker news) is (was?) written in Racket.


pg uses vi, see: http://www.paulgraham.com/pfaq.html.

Others do Lisp in a variety of IDEs.

I prefer Emacs, but it is not the only option.


You can try spacemacs.

https://www.spacemacs.org/


For emacs ergonomics, use a keyboard with Ctrl and Alt on both sides of the spacebar.

Xah Lee is right about that. http://xahlee.info/

The odds that you can create a custom layout more ergonomic than using an appropriate keyboard are not great.

The odds that you can do so more quickly than Amazon can deliver you an appropriate keyboard are vanishingly small...

As Larry Ellison said, "You are holding it wrong."

Good luck.


Thanks to everyone who responded for the helpful suggestions.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: