views:

82

answers:

2

Is there any way in Visual Studio 2008 to smoothly switch between using Emacs keybindings and the default ones? I will soon be doing some pair programming and I need my Emacs keybindings to keep myself from going insane.

+1  A: 

VisEmacs lets you edit files using Emacs, from within Visual Studio. So you don't have to switch keybindings at all! Some more useful information on VisEmacs is here.

Vijay Mathew
I'm writing ASP.NET MVC and therefore I'm extremely dependent on the Intellisense in Visual Studio. I don't suppose VisEmacs supports this, does it?
Deniz Dogan
@deniz VisEmacs do not support Intellisense!!
Vijay Mathew
+1  A: 

Create a new VS macro and add this code :

Sub ToggleEmacsKeyBindings()

    Dim emacsSchemeName As String = "Emacs"
    Dim defaultSchemeName As String = "(Default)"

    Dim props As EnvDTE.Properties = DTE.Properties("Environment", "Keyboard")
    Dim propsItem As EnvDTE.Property = props.Item("SchemeName")

    ''# MsgBox("Current Scheme: " + propsItem.Value)

    If propsItem.Value = emacsSchemeName Then
        propsItem.Value = defaultSchemeName
    ElseIf propsItem.Value = defaultSchemeName Then
        propsItem.Value = emacsSchemeName
    End If

    ''# MsgBox("New Scheme: " + propsItem.Value)

End Sub

You can then assign a keyboard shortcut to this macro to more quickly and easily toggle between Emacs and 'Default' keyboard scheme.

(Note: This works in VS 2005 and have not tested in VS 2008 but it should work too. It also works in VS 2010 with the Emacs emulation extension installed.)

Ray Vega
You're amazing. Thank you!
Deniz Dogan