Growing up as an Emacs user

December 19, 2009

Today I took another step towards Emacs adulthood: I disabled transient-mark-mode.

Big deal, you say? Well, I vividly remember the relief I felt when I found out how to enable it as a novice Emacs user two years ago. Not having a visible selection was just too wierd.

But now I’m ready to change that habit as well. I enjoy the reduced visual clutter, and ironically, I find it easier than before to quickly extend the region to the part of the buffer I want. A frequent annoyance with transient-mark-mode enabled was that I often highlighted text by accident.

However, I’m a bit annoyed that some commands don’t behave the way they used to. For example, comment-dwim (which I use a lot) needs transient-mark-mode to be enabled on the region to (un-)commet. I know that I can temporarily enable transient-mark-mode by doing two C-SPCs instead of one, so I guess it is a small price to pay. But I don’t understand why it can’t just work on the region.

I’m not sure why I suddenly decided to ditch transient-mark-mode. Maybe I accidentally highlighted a region one time too many. But it got me thinking, yet again, about the way I use Emacs. I’ve used it for a few years now, and I think I know and use the most important productivity tricks. But obviously I know that there’s so much still to learn. And now that I feel comfortable, moderately productive and (most importantly) almost never annoyed at anything, I don’t learn as much as I should. I still customize stuff at least few times a week, but I don’t learn significant new features, modes etc. very often.

I want to change that. I really want to be an Emacs wizard, not just an experienced user.

So where should I find inspiration to learn new stuff? The hard part is that I don’t know what I’m missing anymore. As a novice user, I knew what Emacs could do, but not how. Now I need to find out what else Emacs can do. Apart from the plentitude of Emacs-related blogs out there, I’ve found a really good source of inspiration. At VMware, we have a “Tips & tricks” mailing list to which I’m subscribed. Often, useful Emacs, Vim, Sed, Awk etc. tips are posted on that list. I just need to pay attention, which can be hard when you receive hundreds of emails every day.

So let that be the tip of the day. If you work with other Emacs users, learn from them. Create a forum on which you can exchange tips and tricks, be it a mailing list, wiki page or whatever.

And be sure to forward a copy of each tip to me ;-)

Wow, that entry ended up way too chatty.

About these ads

2 Responses to “Growing up as an Emacs user”

  1. Jason Viers Says:

    I too just went through a similar process – switched to transient-mark-mode nil for nicer stuff like exchange-point-and-mark, but the loss of comment-dwim is painful.

    I found out you can hit C-SPC C-SPC (set the mark twice) to temporarily enable transient-mark-mode, so comment-dwim work properly. It takes a little bit of forethought when setting a region, but it’s worthwhile in my experience.

    This blog entry was one of the top hits when googling for “comment-dwim” and “transient-mark-mode”, so figured I’d leave this for other internet archaeologists.

  2. chopmo Says:

    Jason,

    Thanks for your comment! So funny to receive a comment on an old blog post I’d long forgotten about.

    I remember the double C-SPC trick, but I never really got into the habit.

    Actually, these days I only use Emacs for XML and Clojure programming. Still love the editor, but I decided to try out Vim a while ago, and it stuck.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: