Emacs Keybindings in Visual Studio 2012 or 2013

2019-01-12 21:45发布

I would prefer to have Emacs keybindings in MSVS. In MSVS 2008, this was natively supported, and in MSVS2010 there was an extension to achieve this

http://blogs.msdn.com/b/visualstudio/archive/2010/09/01/emacs-emulation-extension-now-available.aspx

Can i install this extension in MSVS 2012? (I have thus far been unsuccessful...) Is there another way to achieve Emacs keybindings?

7条回答
爷、活的狠高调
2楼-- · 2019-01-12 22:06

I figured out how to get the emacs emulation extension for VS 2010 to install and run on VS 2012. This is a bit from memory, but here is what I did.

  1. Download the Emacs emulation extension.

  2. Rename it from EmacsEmulations.vsix to EmacsEmulations.zip and unzip into a folder.

  3. Edit the <VisualStudio Version="10.0"> value on the extensions.vsixmanifest file (XML):

    <SupportedProducts>
        <VisualStudio Version="11.0">
        <Edition>Pro</Edition>
        </VisualStudio>
    </SupportedProducts>
    

Note: Visual Studio 2013 works by setting Version="12.0". And VS Express can be used by setting <Edition>Express_All</Edition>

  1. Zip the content inside the folder back up and rename it back to EmacsEmulations.vsix.

  2. Run the vsix file as administrator. This is required so the extension can write Emacs.vsk into the program files folder. I wasn't sure the best way to do this so I ran a command prompt as admin and then executed start emacsemulations.vsix from the prompt.

  3. Start VS 2012 as Administrator (one time only). At this point, the extension should show up as installed in the extension manager and the keybinding should be listed in Tools/Options/Keyboard. Select the emacs keybindings.

  4. At this point it should be working. It wasn't working for me though, but I neglected run step 5 as admin so had to manually copy emacs.vsk into the right spot. When it still wasn't working I brought up the VS command window (Windows/Other Windows/Command Window) and typed Edit.EmacsBreakLine and the prompt and voila.

I don't have any more information than that so YMMV. Good luck!

查看更多
Emotional °昔
3楼-- · 2019-01-12 22:17

Jaket's method worked for me initially but stopped working after a few days. After searching for a solution in desperation, I then found XKeymacs [1] through a blog entry [2]. XKeymacs adds keymacs style keybindings to the entire windows environment, and works in Visual Studio as well. It might take some getting used to (e.g. Ctr-T doesn't work in IE anymore), but I am very happy being able to use emacs keybindings everywhere :)

  1. http://www.cam.hi-ho.ne.jp/oishi/indexen.html
  2. http://lexicalclosures.blogspot.com/2010/10/emacs-resharper-visual-studio-xkeymacs.html
查看更多
Anthone
4楼-- · 2019-01-12 22:18

If you want to make it work with the Express editions of VS2013, be sure to also change the Edition line to <Edition>Express_All</Edition>. See also the description of the Edition element.

查看更多
混吃等死
5楼-- · 2019-01-12 22:20

I don't believe all of the steps in the accepted answer are correct. Instead:

  1. Follow 1-4 as above to produce a suitable EmacsEmulations.vsix file.
  2. Install the extension as the user who needs the bindings and not as administrator.
  3. Manually copy the Emacs.vsk file from the unzipped content of the extension to the Common7\IDE folder in the Visual Studio program directory (for which you will need elevated permissions).

Running the extension as administrator will not achieve the desired file copy, nor will it allow other users to successfully use the new key bindings.

查看更多
Melony?
6楼-- · 2019-01-12 22:27

FYI: The emacs emulation extension is now open source.

查看更多
Melony?
7楼-- · 2019-01-12 22:30

The trick that worked for me was to copy the Emacs.vsk file to the:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE>

directory. Somehow when I first installed it, it had gotten copied to the

C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE>

directory

查看更多
登录 后发表回答