Things that I’ve used Emacs for

Emacs can do a ton thanks to the code that people have contributed over the decades. Here’s a list of things I’ve used Emacs for, although I’m sure I’ve still missed a few!

  • Taking notes
    • Storing reference information
    • Publishing blog posts
  • Programming / coding
    • Rails
    • PHP / Drupal
    • Java
    • Javascript
    • HTML / HAML / ERB
    • CSS / Sass
    • Emacs Lisp
    • Ruby
    • Perl
    • SQL
    • Bash scripts
  • Managing my to-do list
  • Timing tasks
  • Managing my finances
  • Studying
    • Dictionary (Japanese)
    • Flashcards
      • With random fortunes displayed for correct answers
      • With random images displayed for correct answers (cute kittens!)
    • Example sentences lookup (Japanese)
    • Random example sentence added to blog posts (Japanese)
  • Brainstorming, outlining, and mindmapping
  • Handling my mail
    • Doing mail merges or file merges
    • Tracking correspondence
    • Personalizing greetings and signatures
  • Managing contacts
  • Writing research papers
  • Managing my bibliography
  • Making presentations
    • Planning presentations
    • Delivering dynamic presentations (with executable code!)
    • Using speech synthesis to remind myself about what’s coming in the next “slide”
  • Reading documentation
  • Analyzing my blog and my writing
  • Running a shell
  • Searching files
  • Cleaning up, filtering, or transforming text
    • String and regexp replacement
    • Keyboard macros
    • Custom Emacs Lisp functions
  • Editing files on a remote server
  • Editing files inside an archive
  • Reviowing and making text notes about images and other files
  • Chatting on IRC
  • Chatting on instant messengers
  • Checking the calendar
  • Playing Nethack
  • Playing dunnet and snake
  • Browsing the Web
  • Posting to Twitter and other status update sites
    • Rigging up my to-do list to automatically publish task data to an internal status update site
  • Calculating expressions
  • Using a spreadsheet
  • Exploring directories
  • Renaming, deleting, or moving files
  • Drawing ASCII art
  • Reading news
  • Comparing files or revisions
  • Typing in Japanese or Latin
  • Reviewing similar files
  • Synthesizing speech – “reading” books, technical manual, mail, etc.
  • Learning more about Emacs
    • Random symbols and commands
    • Documentation
    • Source code
  • ROT13 and Morse code encryption/decryption
  • Editing GPG-encrypted files
  • Practising typing
  • Opening spreadsheets and other files downloaded from the Web
  • Taking screenshots (mostly of Nethack games)
  • Analyzing web logs and other files
  • Calculating days between two dates
  • Sending text messages
  • Analyzing source code
  • Interacting with APIs
  • Doing weekly, monthly, and yearly reviews
  • Versioning my files
  • Expanding text snippets
  • Drafting a book
    • Tracking my progress
  • Editing files as root
  • Compiling and running programs
  • Editing text from the browser
  • Andrea

    Hi Sacha! Thanks so much for sharing this!

    Would it be possible that (at some point) you shared the corresponding Emacs packages involved in the different tasks you’ve used Emacs for? I’d be really interested in learning about them!

    Thanks so much :-)

  • Good idea. =) I’ve been thinking about writing short descriptions / tutorials for each of them. Let’s see where I go with that project!

  • Martin

    Quite impressive proof that there’s nothing emacs cannot do for you ;-)

    By the way what happened to your Emacs book project?

  • Martin: I realized that writing cool little Emacs snippets that you can use to improve this contrib package often led to the maintainers of those contrib packages folding those nifty ideas into the code. This is a good thing, but it made it very hard to write for a moving target! I’ve been playing around with the idea of writing an Emacs biography though – telling stories about what people use Emacs for and how they learned about those parts… Is that something you might be interested in?

  • Vee

    Nice! You are true emacs guru!
    I have been using emacs a lot, and I have been learning from your blog to use emacs to do even more tasks. Now I use emacs everyday, for programming, doing various planning, taking meeting minutes, etc.
    Ya, it would be nice if you can also write down how you use emacs to manage each task, even just briefly mention the package/method used. E.g., use org-mode, or with some elisp package, etc. :)
    Anyway, thanks so much for sharing the list!

  • Salfran

    Wow Sacha, truly great! Could you please tell me if you accomplish all of that with the .emacs file you published recently? I’m trying to use emacs as a do-it-all tool.

  • Brainstorming, outlining, and mindmapping

    If you could share how you use emacs for mind mapping, I sure would appreciate it.

    Be kind – I’ve only been using emacs for a year, I’m still new to it.

  • Martin

    Sacha: it’s interesting to learn how other people use Emacs but I don’t mind too much how they learned it. I guess for many people it will be something like “I saw that an Sacha’s blog” ;-). I second Andrea’s idea to have a small description for each of those packages.