Skip to content

Comment on Ask HN: Does anyone Lisp without Emacs?

Comments

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-...

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.