Tuesday, March 2, 2010

Emacs: Editor with Machos

Or is that "nachos" ?

It doesn't matter because this isn't really about Emacs 8)

As GDC is coming up, I'll be spending almost two weeks with a company laptop.. hopefully a nice one, but definitely one with a cramped keyboard.

I rely a lot on CUA input to move around the cursor, cut, copy and paste. But this requires a proper keyboard with direct access to the Insert, Home, Page Up, Page Down, Delete and End keys.

..and those are the keys that are first to get messed in a laptop (in fact, most full size keyboards nowadays tend to screw up those keys !).

Some time ago I tried Vim and I have mixed feelings about it. The way it works is interesting and it can become a second nature to move around with those key bindings.. but the transition to editing is painful because of the "insert" and "non-insert" modalities.

Then of course, when writing code I rely heavily on Visual Assist X to make me jump around methods by name or alternating between definition and declaration, jump around files by partial names.. etc, etc.. I basically never really physically open a file and scroll to look for a method in it (BTW, forget the CTAGS stuff, VAssist is beyond that).

Enter ViEmu.. a plug-in that lets you use most common Vi/Vim key bindings, directly in the Visual Studio editor (I probably mentioned this before).
ViEmu is a great plug-in, but it costs $100-$1 and the 30 days trial were never enough to make me decide whether to buy it or not.

Frankly, Vi to me is more like a replacement for "broken" keyboards and I'm not sure that I want to spend money for those few times when I'm stuck with a laptop.
If I had a bit more time with ViEmu I'd give it another try.. but there is no crack out there.. and yeah, I'm not ashamed to say that.. I'd gladly "illegally" use ViEmu for some more time until I could really decide if I want to buy it or not.

ummmmmmmmmmm !

- My Visual Studio 2008 usabiliy fixes


  1. Visual Assist = Visual Desist! I'm not a fan of this tool ... eats up my CPU and slows me down ... :-/

  2. That's right.. we don't need no stinking computers to help us write code ! ;)

    How do you mass-change methods names ?

    How do you look up any symbol or source file ?

    I understand that some of the "features" can be annoying (I usually disable "reformat on paste"), but those kind of enhancements are too powerful to ignore them.
    It's the next best thing since syntax highlight.. but it's not easy to implement, because those type of editor/enhancements require a code parser running underneath.

    It's true, you can write C++ code without being able to easily refactor or without some loose search tool, or by typing full variable names every time.. but at the same time you have to wonder if you couldn't be more productive if you accepted all the aids that you can get..

    We never stop learning and there is no such thing as too much help (or is there ?)


  3. I don't dislike it because of the features, I just dislike it when it crashes the IDE or eats up my CPU. I usually keep it off unless I need it. 8P

  4. ....aaahhh... so much for my 15 pages sermon... (^^;) ..well, latest build don't seem too bad. I've had no odd crashes recently.
    If you read the release notes, there is a lot of bug squishing going on (scary).

    Performance doesn't seem so bad anymore either... but nowadays I tend to work with at least 8 gigs and 4 cores ;)

  5. I never had VAssist crash or eat up a noticable amount of CPU time, but automatic code completion can be annoying with VAssist, for example sometimes it insists on using -> instead of .

    Also it doesnt always pick up updates in the structure/class declarations and gives you a list of incorrect member variables.

  6. The . to -> doesn't work that well and can be removed.

    I notice that sometimes the guessing is too much.. but I'm ok with pressing esc to skip the prediction.

  7. I lose my CPU cycles (under Visual Studio) to the code completion part. I hit space bar and about 40 seconds later ... *code completion pop-up dialog* ... :-/

  8. Maybe that's MS's own Intellisense ?
    VAssist should override that by default..