Learn Emacs and Lisp with simple, bite-sized screencasts
emacsbites.com
emacsbites.com
From the video, here are the features of emacs that I've learnt by just watching:
1. Emacs will read your environment variables. You can override them as you'd expect.
2. You can override your HOME directory by setting the environment variable to any path. From my point of view, it seems like too much work - will emacs use your current working directory? Seems like it doesn't.
3. C-x C-e evaluates.
Here's what I would have liked to learn, that I didn't:
1. What shortcuts is the author using throughout the video?
2. Basic emacs functionality: moving around, opening / closing files, saving files... Granted I know some movement shortcuts because they're commonly used in other contexts (C-a / C-e for begin/end of line, C-f, C-b to move cursor forward/back, etc), there are many other tips we could use as newbies.
3. Does emacs only evaluate lisp? Will it evaluate Python? Javascript?
4. Although I know I can extend functionality, I'd love to learn about the ecosystem (plugins or modules, what tools, if any, exist for plugin management, etc).
I toyed with the idea of using something that would show you the keys... but those things are never totally reliable and always a bit of added complexity. So I decided instead to offer the web page approach.
I admit, I'm probably not doing a great job for complete Emacs newbies right now. I am unclear if I have to, there are a lot of starting Emacs screencasts around. This one is about starting with EmacsLisp, not really Emacs.
Having said that... if that's what people want I may go back and alter the structure of the thing so that total newbies could join in.
It would probably only mean having fewer expectations in the crash course.
So either do emacs for beginners (of which there are already quite a few screencasts) or do elisp for intermediate emacs users but those new to elisp
Disclaimer: I am being amazingly selfish here as I've been using emacs for quite a while, but only now getting into elisp (and lisp in general)
I've just watched all 3 screencasts and found them really very useful. Not just the elisp stuff, which is great, but also the modes that help you use elisp (smartparens etc).
I would happily pay/gittip for a series that aimed at programmers who already use emacs (or can figure out the editing/movement functions) that takes you from no elisp to being able to write your own (useful) packages. Tips for getting the most out of emacs for the development of lisp would be a huge plus (for example, an episode on setting up/using smartparens, eldocs or whatever).
I do have secondary audience, people who want to learn Lisp, not necessarily elisp. Emacs is the best way to do that imo.
I expect those people to have at least looked a bit at Emacs before they start though.
Thanks for the link to the other vids, will check them out.
3. Looks like you can use Python[1], but you'd better just bite the bullet and learn a bit of Emacs Lisp, it's how you'll be configuring it anyway, and it's unlikely that you'll need to program something too complex if you can just fetch a bunch of Elisp from the net which does sort of what you want.
4. Yes, from Emacs 24 and on it has a built-in package manager and repositories.
You know what a good way to learn Emacs is? Reading the docs. No, really! Anytime you request documentation for your buffer (C-h m by default), it will be based on your current key bindings and modes, so it's a great starting point to explore, as it'll tell you of all the shortcuts your active plugins have defined.
As of late, I've learned more of the capabilities of the modes I use by dicking around than by searching the web or reading manuals, as I sometimes just start typing in the extended command shell (M-x), using IDO mode's[2] fuzzy completion, and seeing what comes up. For instance, by typing "replace", I just learned of query-replace, which prompts you before each substitution for a string. Afterwards, I can run "M-x where-is" to see if the command is bound to any shortcut right now, as I did with query-replace, which turned out to be bound to M-%.
_______________________________
First, it's just a document that you can edit. You start at the very beginning by navigating the document itself. You can save or discard your changes to it.
Second, it's marked up to show you when the key bindings it's talking about have been re-bound. This wouldn't be an issue for a "vanilla" emacs, but is useful with preconfigured packages.
By the time you get through the tutorial, the basics are second-nature.
More power to the videos -- just agreeing that the built-in docs are ample.
Then when you can use emacs as an EDITOR, you can worry about learning the lisp. Don't get me wrong, the lisp is awesome, but is there really a need to make the learning curve any steeper?
- Inline images are kinda supported - There can be different font sizes - There can be styled (bold / italic) text.
So a good syntax definitions could have different background colors for code, different foreground colors, different text sizes, different text weight / italics.
I find this much more pleasant for the eye. In vim, all text has to be the same size and all text has to be the same font. In emacs, you can even (with some hacking, as I remember) have different color themes for different windows/views.
If I'm looking at an editor all day long, I want it to look pleasant. Period. Have a look at https://github.com/jasonm23/emacs-soothe-theme to see how beautiful it can look.
Apart from that, the other reason why I'm trying to switch is that I wanted to become better at lisp and I really wanted to have an editor that I can shape like a tool to suit my needs. And I could never get the hang of vimscript. So if I already learn a new language Lisp sounds like a better investment than vimscript.
So far, I'm happy with emacs, though I can't use it for all my coding yet. Most notably, it lacks a good Objective-C code completion. On vim, there's YouCompleteMe, which does a formidable job of connecting with clang complete. I started porting youcomplete me over to emacs a couple of weeks ago but had to stop due to other priorities. I'm at a point now where I can get the correct completions in emacs in a popup when I'm over a symbol or at the end of a property (self.???). However, I still have to solve a couple of issues and it is not ready for usage yet which is why I've never shared it. If somebody knows a bit of emacs lisp, python, and objective-c and wants to help out here, I'd be glad to share this project on Github.
Godspeed on the project, and perhaps if I can get some time to force myself into ob-c in emacs at work, I can help.
How does storyboarding work out, or are you just writing the markup directly?
I'll comment on this thread again once I've shared the objective-c emacs code.
I'm asking for comparison in learning. It took me 3 attempts, separated by many months, before feeling at home with paredit (even though I loved lisp s-exp and the idea of structure-aware edition). But when I clicked[1], that was it, can't live without it (and other languages will feel slow after that). I think swapping, wrapping expressions, helps in the process of thinking.
I hope you'll be at ease with it.
[1] it helped that I was following a MOOC using Racket (regular motivation) while chatting on irc with emacs/lisp users (less frustration).
[1] http://www.gnu.org/software/emacs/manual/html_node/emacs/DEL...
[2] http://www.ugrad.cs.ubc.ca/~cs219/CourseNotes/Unix/emacs-sta...
If you're using a graphical Emacs (for OSX or X or Windows) I think it hardly ever happens? Doesn't happen to me and I use all 3 of those.
> In some unusual cases, Emacs gets the wrong information from the system, and <Backspace> ends up deleting forwards instead of backwards.
[2]
That's not the case with the GUI version because it works like any other application (File->Quit or the [x] button). In terminal it's a bit different but it's not like vim is any easier here.
Probably - I mean it depends what you want. Emacs is almost infinitely programmable. If you want to set it up as a Python IDE then there're sites like this telling you how:
http://www.emacswiki.org/emacs/?action=browse;oldid=PythonMo...
This is a quick clip of Emacs using Rope for instance:
If you want to set it up as a Lisp IDE then you're probably wanting to go and install SLIME:
http://common-lisp.net/project/slime/
It depends what you want it to do, but emacs is an incredibly powerful program and learning it pays off massively, in my experience. :)