Navigation

SubEthaEdit 3

Tuesday, October 23rd, 2007

So The Coding Monkeys just released version 3 of my editor of choice, SubEthaEdit.

I have to say my favorite feature so far is disjoint block editing. Just option-click a series of lines, and then any edits you make to one line will be made to all. It’s a very powerful feature for doing speedy refactoring.

There are still a few quirks, and I’ve had it beachball while sharing a document, but single player editing seems to be great. Now I just need to find (or make or LazyWeb) an Objective-C++ mode, and I’ll be totally happy.

Comments

  1. Augie Fackler replied on October 23rd, 2007:

    Blockedits (even disjoint ones) are not new in SEE 3, just to clarify…

  2. Colin replied on October 24th, 2007:

    I thought that disjoint ones were new, somehow.

    I only found out about it after upgrading to 3.

  3. Leo S replied on October 25th, 2007:

    I’m trying to think of a scenario where I would want to change several lines with the exact same text…. Can you give an example?

  4. Colin replied on October 30th, 2007:

    Sure, lets say you have this document:

    if foo:
       do_the_foo()
     if bar:
       do_the_bar()
    

    You do some refactoring and want to store foo and bar in an opts dictionary instead. While you could accomplish this with regular expressions, it’s not exactly easy to use, and prone to error:

    s/(foo|bar)[^(]/opts.$1/
    

    I had to test that in a shell and do a bunch of editing to get that to work right. Maybe I just suck ;)

    With block editing, you’d do a disjoint block edit on the first and third lines and type:

    opts.
    

    Which would result in this document:

    if opts.foo:
       do_the_foo()
     if opts.bar:
       do_the_bar()
    

    This gets much more useful if you’re working with more than two lines, of course ;)