Visual Studio 2012/2013でEmacsキーバインドを使う方法(暫定)
環境
- Windows 8.1(64bit)
- Visual Studio 2012/2013 Ultimate (32bit)
Emacs emulationについて
これのことです。: Emacs emulation 拡張機能。
結論から言ってしまうと、ダメっぽいです。
VS2013でのEmacs emulation
この辺を参考にしてインストールします。: VisualStudio2013でEmacsキーバインドを使う - Qiita
VS2012でのEmacs emulation
この辺を参考にしてインストールできそうな気がします。(未検証): Emacs Emulation Extension を Visual Studio 2012にインストールする - Azureの小ネタ (改)
何がダメなのか
Tabキー入力の挙動がおかしくなります。インデント(設定によりスペース4つの場合もあり)の入力ができません。: Emacsキーボード マップ スキーム利用時のタブキーの動作をデフォルトに戻す方法
この記事はVS2008のものですが、現象としては全く同じです。そして
あとでマクロを書いて貼り付けて解決済みにしようと思います。
とだけ書かれて続報がありません。また、その他対応方法も探したけれど見つかりません。(自分で書くのは、最終手段としておいて……。)
対応
XKeymacsの導入
仕方がないのでXKeymacs for 64bit Windowsを使用してみます。: XKeymacs for 64bit Windows Wiki - OSDN
anything.el的なキルリング表示ができないのが辛いところですが、ひとまず何もないよりはだいぶマシっぽいです。(上記VS2012のケースの参考リンクには、XKeymacsではキーを取りこぼしてダメそうとありますが、まあ、しばらく試してみて考えます。)
XKeymacsの設定(プロパティ)から、以下を設定しておきます。(ところで、私の環境ではGUI表示がだいぶ崩れていますが、とりあえず動かすだけなら支障ありません。)
- 標準
- kill-ring-max: 10
- 詳細タブ
- カテゴリ: その他, コマンド: newlineに
Ctrl+M, Ctrl+Shift+M
が割り当てられているので、Ctrl+J
に変更(お好みで) - その他、お好みでキーバインドを調整
- カテゴリ: その他, コマンド: newlineに
- 何もなくてもEmacsキーバインドを実現しているアプリケーション(NTEmacs, Firefox(+KeySnail)): 「XKeymacsを無効にする」をチェック
また、XKeymacsの設定(オプション)から、「ログオン時に実行」にチェックしておきます。
Visual Studioの設定
オプション->環境->キーボードから、
- 「編集.メンバーの一覧」コマンドを、全体で
Alt+M
に割り当て(Ctrl+J
が重複するため) - 「編集.置換」コマンドを、全体で
Alt+Q
に割り当て(配置はお好み)
とりあえずこの程度で、試運転してみようと思います。
追記
[2015-9-17]
keyhacも良いらしい、との情報がありました。
kill/yankのインターフェースは、こちらのほうが良さそうです。幾つか気になるところもあるので、設定をカスタムしてやる必要はありそうですが。(具体的にはC-b
でのタブ切り替えが動かなかったり、C-s
の検索がアプリケーションによっては動かなかったり、Esc
が2度押しだったりするあたり。)