6086 comments
2357 subscribers
6228 on Twitter
Subscribe! Feed reader E-mail

Reading these posts, you can probably tell that I really, really like the Emacs text editor.

View my Emacs configuration.

Check out Planet Emacsen to read other Emacs geeks’ blogs. For all things Emacs, check out the EmacsWiki.

On this page:

How to Learn Emacs: A Hand-drawn One-pager for Beginners


I thought I’d draw some of the things that people often ask me about or that would help people learn Emacs (and enjoy it). You can click on the image for a larger version that you can scroll through or download. It should print all right on 8.5×11″ paper (landscape) if you want to keep it around as a reminder. Might even work at 11×17″. =)

How to Learn Emacs

You can find the image on Imgur and Flickr too.

Feel free to share, reuse, or modify this under the Creative Commons Attribution Licence. Enjoy!

Possibly counterintuitive point: It’s good to learn at least the basics of Vim. Despite the perception of a “Emacs vs. Vi” holy war (one of the classic battles in computer science), it makes sense to know both editors especially if you work with people who use Vi a lot. Know enough Vi to find your way around, and then learn how to customize Emacs to fit you to a tee. That way, you’ll avoid the pressure of not being able to work well with your team or your infrastructure, and you’ll have the space to explore Emacs. =) Emacs is totally awesome.

Need help with Emacs? Feel free to leave a comment or get in touch with me. I’m often in the #emacs channel on irc.freenode.net , and I also occasionally schedule time to help people one-on-one. Also, the Emacs community (mailing lists, newsgroups, IRC channel) can be wonderful, so definitely reach out to them too. =)

Meta discussion: How can I make this even better? What else would you like me to draw a guide for? I’d love to hear your thoughts! Also, thanks to dash, nicferrier, fledermaus, ijp, hypnocat, Fuco, macrobat, taylanub, axrfnu, Sebboh, thorkill, jave_, jrm, and the rest of #emacs for suggestions and feedback!

Update 2013-05-18: Check out the conversations on Hacker News and Reddit!

 

Short URL: http://sachachua.com/blog/p/24836

Emacs chat intro

It turns out to be lots of fun to talk to other people about Emacs. You pick up all sorts of tips and interesting ideas that way.

One of the reasons why I do these chats is to help people get a sense of other people using Emacs. Now that I know John Wiegley sounds like when he’s excitedly talking about Emacs, it’s so much more fun reading his code. =) I’d love it if you told me a little bit about your story. Sharing how you got started with Emacs (what helped, what needs work) might give us ideas on how to make it easier for people to start. What was your “aha!” moment? What are the things you love, and what would you like to see improved? Walk me through your config, highlighting any quirky things you’ve done to make Emacs fit the way you work.

In addition to your story, you probably have lots of little tips that could save people time or make their Emacs lives better. No time to blog or screencast? Show us your favourite tricks in a chat, and I’ll take care of putting it up on the Net. It’s a quick way to get things out of your brain and onto the Internet. =)

If you have Emacs configuration or Lisp questions, ask away. I might be able to help, or someone listening might know the answer. We can spend some time digging into code or bouncing around ideas. I’m happy to help for free. If you come away with something incredibly useful, you can buy me a virtual mug of hot chocolate through PayPal or make a donation towards an awesome Emacs thing like EmacsWiki.org. =) It’s all cool.

I’d love to record and share our conversation so that more people can learn from it. If there are parts that you’d like blurred or not have recorded, or if you prefer to not have the conversation recorded at all, please tell me and I’ll be happy to accommodate that.

Want to talk about Emacs? Get in touch with me at sacha@sachachua.com!

Short URL: http://sachachua.com/blog/p/24684

How to present using Org-mode in Emacs

You can do pretty much everything in Emacs, so why not give presentations too? Org-mode is an extensible outliner and Swiss Army knife for the Emacs text editor. Because it’s a great way to organize information, people have written a number of packages for presenting information from Org.

Here are some options for preparing and giving presentations using Org-mode, along with some guidance on what to use when. It may be a good idea to browse through the examples and create a small test presentation using the systems that catch your eye. If you choose your system before drafting your presentation, that can save you a lot of time, since the approaches differ in terms of the code you’ll need to add to your Org file.

Presenting outside Emacs

Do you need to distribute your presentation to non-Emacs users, or do you want to minimize the risk of getting your Emacs configuration confused? You can export your presentation to a number of formats.

Export to Beamer (LaTeX) and generate a PDF: Use this if you need to distribute your presentation as a PDF. You will need to install LaTeX, which could be a bit heavy-weight. Beamer is a slide package for LaTeX, and Org can export an outline to LaTeX code. Check out Writing Beamer presentations in Org-mode for sample screenshots and a tutorial.

Export to HTML and use S5: Light-weight browser-based slideshows are becoming more popular. They can be distributed as ZIPs or .tar.gz, or uploaded to web servers. See the section in the Org tutorials for Non-Beamer Presentations: S5. Here are some sample presentations.

Presenting within Emacs

Presenting within Emacs allows you to edit your presentation, execute code, or do all sorts of other interesting things. And it doesn’t have to be plain text – Org allows you to include inline images. (Microsoft Windows users may need to install additional libraries – see StackOverflow for tips.)

There are several ways to present from Org-mode. They tend to differ on:

  • the markup you need to add to your slides
  • the keyboard shortcuts to help you navigate between slides

so you can choose the one you feel the most comfortable with.

Org-present is simple and defines very few keyboard shortcuts: left for previous slide, right for next slide, C-c C-= or C-c C– to adjust text size, and C-q to quit. This makes it easy to edit your presentation as you go along. You’ll need to edit your ~/.emacs file to include some code. See the documentation in org-present.el for details.

EPresent is a bit more complex. It supports converting LaTeX into images, so you can embed pretty equations. The epresent keybindings include “n” for next and “p” for previous, so don’t use this if you’re planning to edit your presentation on the fly.

Org-presie takes a different approach by showing the outline instead of focusing on just one slide. When you press SPC, the previous headline’s content is hidden, and the next one’s content is expanded. It’s good for always giving people a sense of where they are in your presentation.

And then sometimes you may want to write your own. For my presentation at Emacs Conference 2013, I wanted to be able to:

  • allow me to indicate various headings as slides so that I can organize an outline of slides (why should they all have to be top-level?),
  • for each slide
    • automatically execute pre-written Emacs Lisp code (for animations and demonstrations!), OR
    • display images that fit the full height or width of the window, OR
    • display text if I don’t specify code or images
  • and have globally-set keyboard shortcuts so that I can go forward, backward, or re-do a slide no matter where I am in Emacs (and with AutoHotkey, even when I’m in a non-Emacs window)

You can find my code at https://gist.github.com/sachac/5278905

Emacs and Org-mode are wonderfully customizable, so you can probably build something that works just the way you want to work. Enjoy!

Short URL: http://sachachua.com/blog/p/24686

Emacs Conference 2013 videos

Here are the Emacs Conference 2013 videos! http://j.mp/emacs2013videos

Unfortunately, our keynote wasn’t livestreamed, but I managed to record the audio so that you can hear what John Wiegley and I sound like.

I haven’t uploaded the Meta-eX performance because it’s a music performance. (Sam Aaron, do you want me to go ahead and post it?)

Sketchnotes: http://sachachua.com/blog/2013/04/emacs-conference-2013-sketchnotes-also-pdf/

More Emacs conference information: http://emacswiki.org/emacs/Emacs_Conference_2013,
http://emacsconf.org

Enjoy!

Short URL: http://sachachua.com/blog/p/24677

Emacs Conference 2013 Sketchnotes (also, PDF!)

I cleaned them up a little and packaged them as a PDF for your viewing convenience:
http://j.mp/emacsconf2013sketches

Here they are individually, too! Click on an image to view the full-sized version, and feel free to share them under the Creative Commons Attribution Licence. Enjoy!

Short URL: http://sachachua.com/blog/p/24660

Brainstorming ways to help build the Emacs community

John Wiegley and I had lots of fun brainstorming ways to help move Emacs forward, particularly as I’m carving out more of my time to focus on Emacs. Here’s what we talked about:

A rough outline of things to flesh out into articles/chapters:

  • productivity, org-mode
  • development
    • emacs lisp
    • haskel, rails, java, and other languages…
  • writing
  • e-mail
  • IRC/Twitter/FB
  • web
  • games and diversions
  • documentation
  • learning and discovery

Learning Emacs development:

  • tools
  • cons cells
  • macros, quoting
  • control structures
  • Emacs structures: windows, buffers, text properties, etc.
  • lambdas
  • libraries

Ideas for visualizations:

  • #emacs word cloud or URL frequency/analysis
  • IUseThis for Emacs, maybe with annotations

Cookbook:

  • PLEAC for Emacs? Emacs Lisp cookbook?
  • Coding patterns

IDE challenges:

  • IntelliSense
  • Excellent project browsing
  • Refactoring
  • Integrated test harnesses
  • Asynchronous operation
  • Performance (especially of code analysis and navigation tools)

Target communities/audiences?

  • Emacs beginners: getting more into Emacs, learning more about packages, customizing Emacs; learning path through packages, maybe with time estimates?
  • Emacs intermediate: tweaking Emacs, getting into Emacs Lisp, contributing upstream; need to update Writing GNU Emacs Extensions
  • Keyboard enthusiasts: keyboard shortcuts, customizability
  • Non-developers (writers, scientists, mathematicians, etc.): Context-specific functionality, starter kits, easy installs, articles, screencasts – learn from Aquamacs, Ready Lisp. Pre-built Org starter kits? screencasts, interactive tutorials, games as introductions
  • Users of defunct editors: migrated features, migration guides
  • IDE users: integration with other parts of life
  • Vim users: configurability envy, migration/emulation

Emacs performance: elp, memory-use-counts, garbage collection, algorithms, cookbook, core work

Discovery:

  • packages: popularity, reverse dependency graph, URL log for #emacs, 24 packages for Christmas and other blog series, IUseThis, reminders to be lazier / stories for inspiration
  • EmacsWiki: guided tour, CSS design

Imagining awesomeness in 5 years: Responsive editor that’s easy to set up; SEO so that people can find useful resources; context/goal-specific documentation; regular virtual show&tell

Imagining nonawesomeness: Weak async; marginal/niche; people moving away to other editors because of growing gaps; performance issues; unmaintained code; developer burnout

EmacsConf: mailing list for next year, venue?

 

Here’s what I’m looking forward to devoting some of my time to:

Write and draw

  • EmacsWiki page updates
  • Guided tours
  • Emacs Lisp cookbook
  • Package reviews
  • Interviews with people so that they can share their tips (incl. screencast and transcript)

Analyze

  • Package use
  • Performance
  • Logs

Learn

  • Performance optimization (Emacs Lisp and core)
  • Package descriptions and use

Code

  • Issues
  • Feature requests
  • Integration
  • New code

Lots of possibilities!

Short URL: http://sachachua.com/blog/p/24633

After Emacs Conf 2013; ideas for Sunday and Monday

Emacs Conf 2013 was a blast! It was super awesome meeting so many Emacs geeks in person, and the talks were fascinating. I’ve posted my sketchnotes and will be revising them to make them easier to read. Some of the other speakers have shared their presentations, so I’ll update that page with links as I come across them. I’m working on pulling together the videos (thanks to jamief for the livestream recording, which I linked on the sketchnotes page). Our keynote wasn’t recorded on video, but I’ve uploaded the audio (also linked on the sketchnotes page).

I’m flying out from London on Tuesday, April 2. The weather forecast for Sunday and Monday looks great and this is the first time I’ve been in a city with a (temporarily) high concentration of Emacs geeks. This is also only the second time I’ve been in London, and the first with an appreciable amount of free time. So I need to decide what to do, otherwise I’ll spend all the time working on Emacs-related follow-ups on the couch.

Possibilities/things to do:

  • Meet up with other Emacs geeks at a coffee shop somewhere. Advantages of doing it in person instead of IRC: higher throughput, fewer tech problems, more ability to move things around or sketch things out? Although many Emacs geeks are still recovering from yesterday… Some possibilities:
    • Braindump things to write about in more depth. (Outline for book? Pages on Emacs Wiki?) Emacs docathon!
    • Hack on various things together. Maybe dig into Org issues? Emacs hackathon!
    • Help people with their configuration files. Emacs configathon!
    • Commiserate with other Windows users and borrow their configuration tweaks. Umm… Emacs unmiserathon?
  • Hang out with other Emacs geeks and do non-Emacsy things, like wandering around London, because people are awesome and it would be great to get to know them.
  • Wander around London for walking exercise. Have fish and chips. Have a good map to navigate my way back. Maybe walk up to Camden Town or take the tube? Go to the Museum of London and marvel at history?
  • Wander around the neighbourhood. Have a good map to navigate my way back.
  • Write letters. Because letters. =)
  • Work on Emacs-related followups: adding more information/colours to sketchnotes, processing video, writing blog posts, working on code… I can theoretically do this when I’m back in Toronto, but there’s value in getting things out reasonably quickly and with good momentum.

Okay. I think the plan is to hang out and enjoy a nice relaxed day over here, meeting up with John Wiegley or other Emacs people if they reach out to the mailing list or through e-mail, and maybe wandering up to Camden Town if not. I’ll snag some postcards and write. Tomorrow, I’ll go to the Museum of London with my trusty notebook and pen, and collect interesting thoughts. I’ll block out some time every week to do Emacs followup, so I can spread it out over time. Should be good!

Short URL: http://sachachua.com/blog/p/24625

Get the highlights as a PDF!

Stories from my Twenties: Highlights from a Decade of Blogging