As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I've used Slime within Emacs as my primary development environment for Common Lisp (or Aquamacs on OS X), but are there other compelling choices out there? I've heard about Lispworks, but is that [or something else] worth looking at? Or does anyone have tips to getting the most out of Emacs (e.g., hooking it up to the hyperspec for easy reference)?
Update: Section 7 of Pascal Costanza's Highly Opinionated Guide to Lisp give one perspective. But to me, SLIME really seems to be where it's at.
More resources:
Video of Marco Baringer showing SLIME
Videos of Sven Van Caekenberghe showing the LispWorks IDE
Video of Rainer Joswig using the LispWorks IDE to create a DSL
Blog post by Bill Clementson discussing IDE choices
There are some flashier options out there, but I don't think anything's better than Emacs and SLIME. I'd stick with what you're using and just work on pimping your Emacs install.
A very minimalistic but useful Lisp IDE for Windows is "LispIDE" available from:
http://www.daansystems.com
Supports CLISP and SBCL.
Starts up with REPL very quickly.
Syntax highlighting.
Download includes CLHS and CLtL2 as CHM help files.
Press F1 to bring up CLHS help. CLtL2 under Help menu.
Keyboard shortcuts for "Send to Lisp" and "Macro Expand".
Simple, effective and free.
I'm very late on this, but it's strange that nobody has mentioned the LispWorks IDE here, and it even has some GUI-Builder, which is portable across platforms (minus Mac OS X).
Also if you want a whole operating system for your Lisp programming undertaking, there still does exist Open Genera (which just runs on Dec Alphas (who is currently the owner of DEC ;-(), it's a complete OS written in Lisp and even has a C compiler, implemented in Lisp AFAIK, targeting the OS. It's very strange. You'll find a few things which we nowadays take for granted. E.g hyper referenced documents (but this was before the Web). It has a few "Lisp" dialects and the base is ZetaLisp, but Common Lisp works. All the tools and things can be introspected during runtime. It's a very strange feeling.
However, I just mentioned it. I guess nobody here will ever have touched OpenGenera....
The most pleasant way I have found of accessing the Common Lisp standard is through Info. Build and install the Info files as described on http://www.phys.au.dk/~harder/dpans.html. Then add the following to your ~/.emacs.el:
(require 'info-look)
(info-lookup-add-help
:mode 'lisp-mode
:regexp "[^][()'\" \t\n]+"
:ignore-case t
:doc-spec '(("(ansicl)Symbol Index" nil nil nil)))
You can look up the symbol at point with C-h S.
There is a Lisp IDE available with Clozure Common Lisp (née OpenMCL). It looks fine, although I like SLIME better. Clozure, however, is the bees knees: an order of magnitude faster compilation and execution on a 64 bit Intel Mac, and a better "user experience" in general. Look around on common-lisp.net for Rittweiler's new slides on using SLIME, they're very helpful.
I'll second the clozure common lisp IDE on MacOS/X. You'll remember it fondly if you ever used Macintosh Common Lisp. They are working to improve it, and, bonus, you get compete source.
In addition, if you just want lispish, dr-scheme has quite the IDE as well.
look for Allegro CL at FRANZ.COM
Eclipse also has a development environment for Lisp called Cusp.
IBM DeveloperWorks Open Source Technical Library: Cusp
I believe this question may help you find your answer.
I use Vim, the Ion3 window manager and terminal windows and enjoy it very much.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
Should I learn to use Emacs with no intention to learn Lisp, if my other option is to get familiar with vi?
Yes. With all the resources out there (FAQ, Emacs wiki, and the Stack Exchange Emacs site) and custom (M-x custom). You don't need to know Lisp. You just cut/paste what you find.
You can drive a Ferrari/Yugo without knowing the internals of the combustion engine or how a Formula One transmission works...
Why not?
You can still learn vi (probably Vim or Elvis).
You can learn jEdit. Or nano and Pico. Or whatever other editor, environment, and language-host you fancy.
Why put such an arbitrary restriction on things? While your Emacs experience will be better if you learn at least basic Emacs Lisp (a .. derelict .. Lisp implementation), it's not required. But at the end of the day, it's a tool. Get as many useful tools as you can. "Useful" also really depends on context.
I have used Emacs for several years with next to no knowledge of Lisp and it served me well for all of the projects I used it for.
You can always simply assume that the configuration you're writing is not in Emacs Lisp and that it is just some funny configuration format - there a lot stranger examples out there (such as Sendmail).
I should warn you though that once I started learning Emacs Lisp my Emacs mastery expanded extremely rapidly - now that I understand the details of the language I can easily bend any configuration to my needs and more importantly I started writing my own extension to Emacs, which add to it even more capabilities.
If you decided to start with Emacs, I recommend to read first this great book - it taught me a lot of things for Emacs at the beginning and it assumes no Lisp knowledge. It won't teach you any Lisp either. Afterwards my advice would be read the official Emacs manual and start exploring the Emacs Wiki and #emacs on Freenode.
Learning Emacs truly is a journey that is not for the faint of heart, but it is journey that is most certainly worth it...
Configuring Emacs is a journey, and it's something that you're going to want to do. Being able to customize your developing environment is one of Emacs' greatest strengths. It's almost unavoidable. You pick up bits and pieces just by looking at other people's .emacs files.
Knowing just a little bit of Lisp goes a long way in Emacs.
You don't need to learn Lisp to use Emacs. Even basic customization of Emacs works fine without Lisp knowledge. If you need something beyond your capabilities, there are many helpful Emacs users.
Learning a bit Emacs Lisp will later enhance your understanding of Emacs.
Emacs Lisp is a relatively simple Lisp dialect. Basic Emacs Lisp is not that difficult to learn. As an experienced Lisp user I have to say that Emacs is available quite some time and the users have written some amazing things in Emacs (like Org-mode). Some of the Emacs extensions are very very well written and it is a pleasure to read the code.
Well, if you don't want to customize your Emacs, you won't need Lisp, either. And you can also do some basic modifications using the build-in customize functionality and by copy&pasting code of others. But truth being: I have written several hundreds of lines of code to customize Emacs to suit my needs. On the other side, as far as I know, vi is not as customizable as Emacs, so in the end it is probably more about what editor you like more and you should try both.
I know little Lisp and use Emacs to edit my C and OCaml programs on Windows and Linux.
I've been using Emacs for a year and a half, and really only picked up whatever Emacs Lisp came without trying. I have a heavily extended set of configurations (first in a .emacs file, and now in ~/.emacs.d/init.el and friends), which are totally a result of cutting and pasting from the excellent resources found online.
Aside from, of course, the EmacsWiki, you should see the fine Emacs Starters Kit and subscribe to Planet Emacsen --- preferably in a feed reader. It's prettier.
Having said that, after you have a working setup you might yield to the temptation to learn a little Emacs Lisp. I've just started the free Introduction to Programming In Emacs Lisp, which comes with Emacs and is best read from within Emacs Info. It assumes neither programming ability nor Lisp knowledge, and is a friendly introduction to the 'vibe' of Emacs Lisp which I find to be well-written in the extreme, friendly and concise, and worth 10x every minute I have spent with it.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
There's a great project called the Ruby Koans, it's a series of tasks to exercise yourself in the Ruby language, stepping you through the standard library using the Ruby Unit Testing suite as a learning tool. It's a great project.
I'd love to see something similar for Emacs.
Can anyone recommend any Lisp exercises to be done inside of Emacs to both exercise Lisp and Emacs usage? Perhaps also while completing the Ruby Koans?
There used to be lesson in .el format (emacs lisp) at http://www.gnuvola.org/software/elisp-tutorial/.
You can find a copy of the tutorial here now.
I learned a lot from them. You read them in emacs in lisp interactive mode, and practice within the text.
The book, "Writing GNU Emacs Extensions", comes pretty close to what you're asking for.
But, if you don't want a book, there are three similar questions already in stackoverflow: What's the best way to learn lisp,
How to quickly get started at using and learning emacs, and Tips for learning elisp.
I don't know a "walk through" series that exists, but have found that the best way is to start thinking about little things you wish it did, and then trying to make it work (asking here helps). Even if Emacs already provides such functionality, you might find it more interesting to solve problems you want solved, rather than a bunch of throw-away lessons that hold little interest to you.
The The Little Schemer is a book of Lisp exercises. You need to be aware that some of them are impossible in Emacs Lisp, as it doesn't support closures.
It is also focused on teaching recursion to non-programmers, meaning that you won't cover the full range of Lisp statements (most exercises just use (cond ...) recursively.)
I really enjoyed it though.
A very old Oreilly book, Writing GNU Emacs Extensions, has some, if I remember correctly. You might also want to look at the "Emacs Lisp Intro" found in the info pages (you access them using M-x info.
Honestly, the best way to learn Emacs is to change the way you look at it. Don't look at is a text editor to be learned, but as an environment for writing text editors to be explored. Think to yourself: What did I always want in a text editor but never found in the editors that I have used? Set yourself about making it. You'll learn far more, more quickly, trying to make your "own" editor piece-by-piece than by trying to remember lessons learned from some loosely (if at all) linked exercises that have no context in a problem to be solved.
How is this one:
Write a simple program to open a particular file ("~/ekoans.txt") and select a random line from that text file, that is displayed to the user in a new temporary buffer. Call the function ekoan-random, and make it callable by the user.
The first few lines of ekoans.txt are:
Make ekoan-random open up a new file for you instead of a temporary buffer, and insert apropos header text in the new buffer.
Write an ekoan-sequential function that behaves like ekoan-random, except it works in sequential order
Make ekoan-sequential persist through a customization variable
Make the name of the koan file changeable by a customization variable
I call this Koan-strapping!
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
As an old fart who has settled into using emacs whenever I can, I hear about Eclipse every so often.
Is there any real reason to use Eclipse and give up all the knowledge of emacs and packages, plus the macros I wrote for it?
emacs and vi don't intrinsically support building, debugging, "project"-based collections of files, etc -- Eclipse and other IDEs do, so that's the IDE's plus... better integration, wrt the "motley collection of plugins" for powerful-but-not-IDE editors such as vim and emacs.
That being said -- I'm a vim lifer (30+ years since I started w/vi, before viM was built;-) and I stand in awe of my emacs'er colleagues (have to ack that, no matter how incredibly powerful vim is, emacs is a notch above). But I think I also see how the smooth, seamless integration of IDE's such as Eclipse can help my younger colleagues who're addicted to THOSE!-)
The most important feature for me is refactoring: Renaming of methods, classes and interfaces on all locations they are used.
With that you can change the complete structure of your project easily.
I also tend to use Emacs whenever possible, but for Java I will still occasionally fire up Eclipse to use its refactoring tools.
Examples of refactorings in Eclipse
If you are doing Java, yes. Support for browsing the code, for code completion and refactoring is worth it, IMHO.
If you are doing C/C++, maybe. Support for the language is not as good, but I still like the overall view it gives me on the project, searching the whole hierarchy and the SVN support, especially the synchronize view.
Eclipse can be switched to key bindings which mimic the basic Emacs setup.
It is still easy to switch to Emacs temporarily for doing something more sophisticated, e.g. with keyboard macros.
I don't know if you'd count this as a real reason, but I certainly enjoy having Eclipse's excellent code completion and customizable templates.
Probably not. After a brief (decade) stint with Visual Studio, I'm squarely back in the Vim camp now and like it here. I thought I'd try Eclipse a while ago but it only took a couple of hours to realise that I simply wouldn't be comfortable in that environment.
Stick with the tools you know, and know them well.
It for me totally depends on the language/environment I'm working in. For something like Java Eclipse is a life-saver but for other languages having code-completion and auto-imports might not be all that important.
In the end it mostly comes down to where you yourself feel more productive.
Refactoring and java completion are big reasons to use Eclipse. Unfortunately, the emacs keybindings in eclipse are incomplete, it doesn't understand ^x2 or any other of the buffer manipulation macros, it doesn't understand keyboard macros, and it's missing a whole bunch of other features as well.
The problem is that emacs support can't be done with clever keybindings that sit on top of conventional WYSIWYG editor: it needs a fundamentally different approach to accessing the edit buffer. This could be added to eclipse, but so far nobody has bothered.
Perhaps you will?
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I'm trying to learn clojure. ClojureBox appears to be similar to LispBox - http: //gigamonkeys.com/lispbox/ which I've used previously.
I'm looking for a good clojure specific tutorial on using emacs as it's configured with clojurebox.
Here are some specific questions I have:
How do I create a new clojure file in emacs and
Load an existing clojure file so the forms (values, functions) are available to the REPL
What is a good project structure? If I have more than one file what is the best way to proceed and
Does Programming Clojure http: //pragprog.com/titles/shcloj/programming-clojure answer these questions?
Is there a better environment than clojurebox? I've tried enclojure for netbeans and it's currently broken (won't create a project correctly). Netbeans 6.7.1 and enclojure 2009-08-25-release.
I can provide a partial answer to this. I hope to get up and running better with ClojureBox myself. I am familiar with emacs in general but not emacs with SLIME which is what ClojureBox provides. If you aren't comfortable with emacs itself I would suggest working with its own tutorial first to get the hang of it.
How do I create a new clojure file in emacs?
Use standard emacs file creation "C-x C-f" to open a new file. Chose a file name with the extension ".clj" and it will beauto-detected as a clojure file.
Load an existing clojure file so the forms (values, functions) are available to the REPL?
Use the load-file command (C-c C-l), note that you will have to have saved the file first (C-x C-s). It will now be available to the REPL.
Alternatively to just try out a block of code, highlight the region containing it and use (C-c C-r) to eval-region with SLIME (which is running your clojure REPL).
Does Programming Clojure http: //pragprog.com/titles/shcloj/programming-clojure answer these questions?
Not that I am aware of. It doesn't really deal with development environments.
For help using the book code with ClojureBox see this thread - http://groups.google.com/group/clojure/browse_thread/thread/b52ca7becceca16a
Also try the Clojure google group in general.
I put together Clojure Box, but I don't know if a Clojure-specific Emacs tutorial other than the brief readme that comes with Clojure Box. The tips in Practical Common Lisp for traversing buffers and the REPL and loading code will apply.
For project layout check out the readme from technomancy's swank-clojure project on github. Clojure Box doesn't have this feature, but if you install swank-clojure on your own, you can follow the standard layout instructions under the Project section of the readme.
You may want to try Enclojure again since there was a release in November from Eric Thorsen's github account. The screencast of new features from the August 2009 build (http://www.vimeo.com/6270957) is pretty helpful too.
It is not a full tutorial, just a collection of useful keys.
http://learnclojure.blogspot.com/2009/12/favourite-keys-for-emacs-and-slime.html
If you are at all familiar with Emacs clojurebox is great. Sets you up with everything needed to hit the ground running without fighting with your .emacs file.
Most file related work tends to be done calling out to java libraries so if you've learned the language well enough to understand using java (not hard) then just dig into the java docs for how to do that.
Biggest answer though is yes, Halloway's book does answer at least most of your questions, and more you will have as you learn the language.
Aside from the book I'd say the best resource is just hang out in IRC (#clojure on freenet) because the people in there have always been helpful any time I've hung out, and are quite willing to answer questions. This includes Rich and other core/contrib clojure commiters.
This question already has answers here:
Good Resources For Emacs [closed]
(9 answers)
What to teach a beginner in Emacs? [closed]
(13 answers)
Closed 9 years ago.
I'd like to learn Emacs, and was wondering if anyone had any good resources (free or otherwise) to recommend. I'm mostly interested in programming Emacs, starting from the basics, and lots of "exercises". I have used Emacs and most of its editing features, although I'm a bit rusty so a very quick refresher on that would be useful as well.
Thanks
Edit: Thanks for the suggestions. I'll have a look and update with what I liked...
GNU Emacs manual
GNU Emacs lisp reference
emacswiki
Programming in Emacs Lisp (Second Edition) - free online book
One thing to bear in mind is that all emacs configuration is programming.
PlanetEmacsen is a good RSS feed with lots of tips.
Xah Lee although he is apparently considered a bad troll, has some great emacs programming stuff.
Also whenever there's a function or keyboard shortcut you're not sure of, try C-h f and C-h k respectively, then follow the link to the source code for that command.
For exercises, Lair of the DustBunny did a very long series on rewriting python mode from scratch.
You could also try writing the PLEAC elisp section. That's a very good way to compare elisp to your favourite language.
Emacs itself includes a tutorial with exercises that guides you through the basic features and editing commands. You can find it in the Menu under 'Help' or by pressing C-h t (i.e. press Control and 'h' together and then 't' alone).
Last week I purchased this Peepcode screencast and really liked it. It walks you through the basic features (editing, loading saving, buffers) but also dives into some advances topics, like programming emacs lisp:
http://peepcode.com/products/meet-emacs
Definitely the best book about Emacs is Bob Glickstein's "Writing GNU Emacs Extensions".
Really informative. Really good examples. And, for a technical book a pleasure to read. It is one of the best computer books I have. (Thereunder are such treasures like my "VIC-20 Technical Manual" from 1982 :-)
Some PDFs are available online, but for the full fun I suggest purchasing a hard-copy.
Emacs's own help system is your friend --- ask Emacs. Learn the main C-h keys and apropos.
These too can help:
http://www.emacswiki.org/emacs/HelpPlus
http://www.emacswiki.org/emacs/EmacsNewbieWithIcicles