Emacs key bindings in Visual Studio

I just found out there is a Visual Studio 2010 extension that provides basic Emacs key bindings. This looks fantastic. I’m not looking for much, just the most basic editing and navigation functions, and they seem to be there.

When I first started programming for Windows, I was used to Emacs, and for a while I tried to keep using Emacs. But the impedance mismatch between Visual Studio and Emacs was too much. The benefits of Visual Studio outweighed the familiarity of Emacs and I quit using Emacs. Years later I started using Emacs again, deciding to just live with the impedance mismatch. It would be nice to reduce this mismatch.

So far I like the extension. It adds some Emacs bindings without interfering with familiar Visual Studio operation, except when the two are in direct conflict and it has to choose one or the other.

There is one major bug:

Cut/copy/paste from other applications into Visual Studio does not work with the Emacs extension installed.  We’re working on a fix for this issue and will post an updated version of the extension when a fix is available.

Cut and paste works fine within Visual Studio. So if you want to copy code from a file, you need to open that file in Visual Studio first. Maybe that will turn out to be a show-stopper. On the other hand, I do basic editing far more often than I copy from external sources, so maybe the bug is worth tolerating.

Posted in Software development
5 comments on “Emacs key bindings in Visual Studio
  1. Canageek says:

    Nice. I love emacs, but the fonts and menues make my eyes bleed. That said, I like gcc and its nice command line better then VS, but that is probably just because I was taught with command line compilers, and hate how I have to set up a ‘project’ and deal with a zillion cruft files just to write Hello World.

  2. Ajax says:

    A (nasty) workaround for the copy/paste bug is to select the text you want to copy and left-click drag the selection into the VS window.

    Another alternative is to use XKeymacs, which has worked rather well for me in the past. Between that, Visual Assist X and emacs mode for SublimeText 2, I find myself increasingly less inclined to fire up emacs when developing in Windows. Emacs on Windows has never felt close to as fluid/responsive as it does in Linux. I should qualify all this by saying that development in VS2010 is a nonstarter without a proper SSD drive.

  3. Canageek says:

    Huh, some comments I got emailed about that disappeared.

    I don’t like VS, because it adds odd project bits when I just want a text editor.

    Also, about indenting in emacs: I will admit, I can’t figure out how to get emacs indenting to work right, so I’ll go into Notepad++ and fix it, then reload the file in emacs.

    I’m sure there are ways to get emacs to do everything I want. However, when googling on it all the documentation on it is written in Lisp, assumes you already know the inner workings of emacs, and if you ask for help you get told “RTFM”

    I love emacs, I just hate the claim it is self-documenting.

  4. Canageek says:

    Alright, to show people what I mean I’ve opened up the same code side by side on both: http://www.flickr.com/photos/canageek/8012435163/in/photostream
    I’ve noted the features I like in the comments, feel free to tell me how to improve emacs.

    What I didn’t note is that notepad++ just looks cleaner, not sure why. Could just be the greater spacing between lines.

  5. Jaket says:

    Ctrl+Shift+Ins will paste from the Windows clipboard into VS.