Overview
Emacs is simply the best tool ever made for a computer. It is a highly customizable editor that does most things a geek wants a computer to do. In addition to being an editor, it's also an IDE, compiler, debugger, interpreter, email client, USENET client, IRC client, calendar, organizer, address book, calculator, and it even plays some games. This list really only touches the surface. It's up to the user to decide just how many of these features they want to use, but I'm finding that over the years I do more and more in Emacs.
Emacs is the extensible, customizable, self-documenting real-time display editor.
I use Emacs, Org-mode, and its ability to publish to HTML to author this web site. And of course, I'm typing this text in Emacs right now.
Customizations
Emacs is very customizable, starting with the M-x customize command, to modifying one's .emacs file, to writing Emacs Lisp packages.
Here are all of my personal customizations. My init.el file runs bootstrap code to convert init-emacs.org from an Org/Babel 'literate' programming version of my Emacs configuration into an Elisp version, init-emacs.el which is then executed.
init.el init-emacs.el init-emacs.org
Emacs Lisp Modules
Here are some Elisp modules I've written. Some are complete and working, many are only partially written or have been abandoned for now.
Modules in MEPLA
Org Visibility | Persist (save and load) the state of the visible sections of org-mode files. |
Completed Modules Not (Yet) in MEPLA
auto-menu.el | Provide functions to help with creating Emacs menus. |
basic.el | An old school BASIC interpreter/compiler (in progress). |
calendar-remind.el | Integrate the remind program into the Emacs calendar. |
decimation.el | A port of Ed Kolis' game Decimation that he wrote for the DRL competition. |
epoch.el | Epoch to Gregorian Calendar date/time conversion helper. |
multi-task.el | Run a list of commands asynchronously, displays running statistics, and finally returns when the commands have completed. |
replacer.el | Replace strings as you type. |
split-move.el | An alternative to page-up/page-down. |
All Modules (Including Uncompleted Ones)
auto-menu.el basic-test.el basic.el bbs-fetch.el bitwarden-test.el bitwarden.el blackjack.el brainfuck-test.el brainfuck.el calendar-remind.el collab-edit.el decimation.el epoch.el ironsworn.el material-theme.el maze.el multi-task.el mysql.el replacer.el slack.el split-move.el sudoku-game.el time-server.el timer.el tsql.el twitter.el web-query.el workout-tracker.el
Emacs… it's worth the pain.
– Kyle Sherman