4 ms·
I'm inclined to try to learn a Lisp, but the tight integration with Emacs is putting me off. I spent a lot of time and effort to learn vim and I'm wondering why
by ducktective 4y ago
I'm inclined to try to learn a Lisp, but the tight integration with Emacs is putting me off. I spent a lot of time and effort to learn vim and I'm wondering why a family of languages should be this dependent on a specific editor...
- abrax3141 4y agoIt’s not. You can use any editor. Emacs just happens to have a package called slime that helps - I’m told. I’ve been using just lisp+emacs w/o slime for decades. To be clear, except for slime, which as above is optional, any editor will do just fine.
- Jtsummers 4y ago> why a family of languages should be this dependent on a specific editor... The language isn't, but SLIME is because emacs isn't just an editor, it's a platform and system that people develop applications on top of. And the community was already there, using emacs, to continue with that option.
- klipt 4y agoYou can emulate vim key bindings in Emacs with ViperMode.
- e3bc54b2 4y ago> I'm wondering why a family of languages should be this dependent on a specific editor... As mentioned by others, its not. But Emacs is also a Lisp runtime. People who are attracted to Emacs eventually learn some Lisp (Emacs Lisp, closer to CL than Racket et al) or were attracted because of Lisp in the first place. As a result, the overlap between CL devs and Emacs users is naturally higher than that for other editors. This translates into people developing more and better tools for their editor, and higher popularity usually translated into more and better tools (with obvious exceptions). As mentioned by other commenters, SLIME can be used with Vim too, if that's your thing. But just like SBCL, Emacs is kinda of de-facto editor of choice, not by force, but by love of its users :)
- whartung 4y agoI've done the vast bulk of my CL work using just vi. Specifically, I was doing the typical "reload the lisp file" life cycle, rather than the interactive "just redefine this defun" style of development. Even when I used Lispworks, it was "save file, reload it" style of development. I used CLISP because it had GNU readline. (e) to edit my file, (l) to reload it, and off to the races (I wrote those trivial defuns). No packages, no imports, no asdf. Everything in CL-USER. I did switch to emacs for one simple reason: tab to reindent. Other than that it was the most basic of emacs use (load file, save file, ^s to search, cmd-XCV for cut and paste, pgup, pgdn). No Sexpr navigation, no buffer juggling, none of that, no lisp integration whatsoever outside of paren matching and the tab to indent.
- abrax3141 4y agoAw, dude, if you’re not buffer juggling - esp with three or four shells! - you’re missing out on one of the great joys/mysteries of life!
- _ph_ 4y agoBesides that I can only recommend Slime, you can basically convert any program that doesn't use readline into one via rlwrap. Very useful :)
- db48x 4y agoSLIME is a third–party tool that integrates with Common Lisp; it isn’t part of the language. With most Common Lisp implementations you can just use the repl to call (inspect foo) to see what slots foo has and their values. It will probably be a little clunky since drilling down into the details might require you to type numbers at a prompt. Meanwhile SLIME presents the same information in a UI, so you can click on things (or type the numbers if you prefer). It just happens that SLIME is a pretty well designed UI (the acronym stands for Superior Lisp Interaction Mode for Emacs, so I guess that was the goal). It’s miles ahead of what you get from most other languages, even C++, but most of what makes it so great comes from features that were already present in the language implementations. It also combines very well with other advanced Emacs packages such as Paredit. Interestingly, SLIME is implemented as a network protocol to allow for remote debugging, so you can implement a new UI for it any way you want. I’ve never used it, but you might check out SLIMV instead. https://www.vim.org/scripts/script.php?script_id=2531 https://www.vim.org/scripts/script.php?script_id=2531
- Jach 4y agoJoin me vim brother and don't settle for forcing yourself to use emacs while developing in CL when you don't have to! You even have two vim options! https://github.com/kovisoft/slimv https://github.com/kovisoft/slimv and https://github.com/vlime/vlime https://github.com/vlime/vlime with a great comparison of the two: https://susam.net/blog/lisp-in-vim.html https://susam.net/blog/lisp-in-vim.html