views:

694

answers:

8

So to give a bit of context, I'm a programmer and my work has me constantly switching between my laptop (Mac OS X) and Linux/Windows machines. I really would love to find a good text-editor for all of these, I've tried vi and it's a great editor for my basic tasks but since I'm doing programming I wanted something a bit more geared towards that so I started using emacs. I'm enjoying using emacs, but feel like I'm not getting the full benefit of it's power, especially on the Elisp side.

Can anyone recommend a good resource for learning emacs and elisp, whether it's a book or an online document.

Thanks in advance.

+4  A: 

I used the second edition of Learning GNU Emacs (it's now in third edition), and found it very helpful. It had a quick reference card which is still on my desk, what's left of it anyway.

acrosman
+7  A: 

A guided tour of Emacs is a great start.

Basically just learn how to open files (C-x C-f), save (C-x C-s), search (C-s) and replace (M-x replace-regexp or M-x query-replace-regexp) and you'll be well on your way. Once you can use it for these basic functions, you can pick up new stuff as you go. (Subscribe to stackoverflow's feed for questions tagged "emacs" for a nice steady flow of tips.)

For Elisp, Stevey's Emergency Elisp is a good resource.

Matt Curtis
+7  A: 

EmacsWiki has a lot of great content, check their newbie section.

Alexander Kojevnikov
+4  A: 

Emacs comes with a built in Tutorial, accessible from Help menu or C-h t, and also a built in manual C-h r. I've been using it for years and was using just this online documentation. A few months ago I've decided to buy the printed manual from GNU website - it was an eye opener. To quote RMS - do yourself a favour and buy the manual (if you are serious about using Emacs). As somebody mentioned, emacswiki.org is a great place to find things. So is the help-gnu-emacs mailing list http://lists.gnu.org/mailman/listinfo/help-gnu-emacs.

There's also a built in Elisp tutorial and a reference manual, accessible via C-h i. Good luck.

+1  A: 

You don't mention what type of programming you do but I would highly recommend acquiring and learning an appropriate mode. Emacs is just like Eclipse and NetBeans in some respects. Anyone can program a "plugin" for it. For my personal tastes (I happen to develop Java mostly), some modes that come with emacs aren't quite what they could be.

I heavily use the following modes:

  1. nXml (for editing xml, html, etc.)
  2. JDEE (for editing Java, the community around this has dwindled since NetBeans and Eclipse became popular, but it's still very functional and it looks like some people have picked up development)
  3. p4el (for integrating with perforce)

There are many, many other modes out there for all kinds of languages, editing and other tasks. I would look for ones that match what you use emacs for and try them out.

In addition to modes, a lot of tools integrate nicely with emacs. For java specifically, FindBugs and PMD can be integrated fairly painlessly and become quite useful.

lycono
A: 

I know that I should be providing solutions here BUT .... "lycono", is there a windows setup that has all the plugins that you're talking about.

It will be nice to have something like cygwin_setup where you get to see all the various modules that are available to you so that you can, at anytime, install whatever module/plugin you desire.

anjanb
To my knowledge, no there is not. It's not what you're asking for, but there are plenty of listing sites. http://www.emacswiki.org/emacs/CategoryModes is one.
lycono
+3  A: 

I would like to point out that the book "programming in emacs lisp" (which i know as Emacs Lisp Intro) comes with emacs versions 22+, and can be gotten at via the built in info system:

C-h C-i m Emacs Lisp Intro <RET>

and that the elisp reference manual can also be gotten at within emacs:

C-h C-i C-s elisp

(from within an info node i recommend playing around with the commands m and C-s, since they do very similar things very differently)

And, something that i forgot for my first few months programming in elisp: C-h f (describe-function) and C-h a (apropos-command) both define functions. The first defines a function that you know the name of, and the second searches for a function that you have an idea of what it should be called. Together they are like a super-powered version of pythons help() function.

quodlibetor