Visual Studio 2013 で emacs キーバインドを使う

Visual Studio 2010 ではEmacsEmulationsという拡張機能が提供されていてEmacsキーバインドが使えたんだけど、Visual Studio 2013 ではこの機能拡張が通常は使えないので、これを使えるようにしようという話です。

元ネタはこちらの stackoverflow のQA

Emacs Keybindings in Visual Studio 2012 or 2013 - Stack Overflow

ぶっちゃけ一番の解答とコメントの補足を合わせたて日本語化しただけですのでこのQA直接見るだけでもOKです。

環境

私が確認した環境は以下のとおり

Windows Windows 7 Professional SP1 + IE 11
Visual Studio Visual Studio 2013 Premium Edition

手順

1. EmacsEmulations をダウンロード
2. ダウンロードした EmacsEmulations.vsix ファイルの名前を EmacsEmulations.zip に変更して zip ファイルとして解凍する。
3. 解凍したフォルダに含まれるextensions.vsixmanifestファイルをテキストエディタ等で開き タグの値を「10.0」から「12.0」に変更する。
      <VisualStudio Version="12.0">
        <Edition>Pro</Edition>
      </VisualStudio>

Visual Studio 2012の場合、値は「11.0」だそうです。私は未確認です。

4. 解凍したフォルダに含まれるEmacs.vskを「C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE」フォルダにコピーする。(※ 64ビットWindows の場合は「C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE」フォルダにコピー)
5. extensions.vsixmanifest を含む解凍したフォルダに含まれるファイルを再度 zip 圧縮する。

この際、解凍した EmacsEmulations フォルダを圧縮するのではなく、EmacsEmulationsフォルダに含まれる全てのファイル、フォルダを選んで zip ファイルを作るのが大事。
f:id:kaizawa2:20141223165113p:plain

6. EmacsEmulations.zipの拡張子を再びEmacsEmulations.vsixに変更
7. 管理者として実行したコマンドプロンプからEmacsEmulations.vsixを実行
C:\>start EmacsEmulations.vsix

もし「このVSIXパッケージは、ルートファイルextension.vsixmanifestが含まれていないため無効です。VSIXファイルが破損している可能性があります」というエラーが出た場合には手順5.のフォルダごと圧縮してしまったことが原因と思われます。解凍した中身のファイルとフォルダを全て選択してZip圧縮してみてください。
f:id:kaizawa2:20141223170616p:plain

6. 管理者として Visual Studio 2013 を起動し、ツール(T)→オプション(O)からオプションのウィンドをを開き、環境→キーボードで現れる「次の追加キーボードマップスキームを適用」オプションから「Emacs」を選択

f:id:kaizawa2:20141223171958p:plain

これで Emacs キーバインドが使えるようになります。