Foognostic blogs Seeking knowledge of foo

10Dec/08Off

How I use GNU Emacs

My last post discussed when and why I started using Emacs many years ago. This post covers how I use it, from the embarrassing beginnings to the hopelessly addicted present. Here are the major stages of Emacs usage in my life:

  1. It's just an editor: run it every time you want to edit a file.
  2. Maybe it's a development environment: leave it running all day for editing, compiling, and deploying stuff
  3. It's the solution, no problem is too great. Bring it on!: In case the temptation occured to you I'm sorry, it's too late. Vi has already been implemented as M-x viper-mode. HHOS.

#1 is the SimpleText/Notepad/vi worldview. After 5 or 6 passes you start to wonder "why isn't Emacs ready IMMEDIATELY?? I just need to add/remove/replace a few characters! Am I using it wrong?" Yes yes yes yes, but don't stop there. After a while you realize it makes more sense to try step #2.

#2 learning enough chord-command-mojo to put text where you want it. Also probably means running one of the internal terminal emulators (shell, eshell, or whatever M-x term is good for??). At the latter part of this stage your caps lock key has become a control key.

#3 is kind of depressing. You have come too far to quit. No one wants to suffer the keyboard shortcut withdrawl it takes to learn a trendy new editor well. It's also depressing to realize you will never use the Dvorak keyboard layout without remapping everything to fit the same keyboard patterns!

Stage three is the scariest stage. It's the all or nothing stage where you decide to use Emacs for as much as possible as often as possible. You pretend like you're not jealous of neat TextMate tricks... and then act all blasé and snooty when someone implements textmate.el.


Slipping for a moment back into why I prefer Emacs

What is textmate.el? Physically it's 234 lines (including comments) of Emacs Lisp. What is it conceptually? A plugin? An add-on? A shared library? A loadable module? No. It's no different than the Elisp that most of Emacs is built with.

I feel like I'm misrepresenting something simple but very important here... not all of Emacs is implemented in Lisp but so much of it is that "plugins" have the same, broad access to the plumbing as core code. Implementing so much of the editor in an interpreted high-level language was questionable when workstations were so much slower. Back when eight megs and constantly swapping was painfully true.

Especially salty old Emacs Lisp (warning: some profanity, and questionable maturity picking names for things ;-) .

My point here is that the design of Emacs focuses on extensibility and delegates performance worries to Moore's Law. Solid bit of planning there!


Enough of the cheerleading already.

The goal of this rambling logorrhea was to explain how I came to depend on Emacs. Version control integration is cool, sure. And the SQL features sure are slick. What I needed went beyond cobbling together fixes and features.

My problem was disorganization. The brute force mental juggling I tried for so long was A.) reacting badly with an aging brain and B.) an embarrassing stream of forgotten items and prioritization failures. My professional development was stalling.

Since I was suffering from stage 3 addiction to Emacs I looked there first. Hi there org mode! Wow! Using GitHub? OoooOOoooo!

Before org-mode my workarea was basically an altar to post-it notes. This year I have used NONE. I dump things into org-mode (supports internal and external hyperlinks) and refresh my agenda (C-a a) whenever I need a reminder of what to do next. It's quick enough and good enough to be habit forming. Good habits! :-)


Laziness, or this post is long enough already

I'm not providing screencasts or a detailed HOWTO on using any of my pet modes. Other people have done that better already. I'm going to thank you for reading this far and leave you with a few more fun commands to try:

  • M-x woman (surprisingly not offensive. try C-h a woman)
  • M-/ (word completion, I do this more often than saving files)
  • M-x ido-mode (like a genie for bouncing around open buffers)
  • M-x zone (this is a byproduct of extra time!!)

Tagged as: No Comments
   

Foognostic blogs is Digg proof thanks to caching by WP Super Cache