Idea/PyCharmで設定したEmacsKeyMapをAppCodeにimportする方法

PyCharmでデフォルトで用意されているEmacs KeyMapをコピー&カスタマイズして使ってます。

先日AppCodeを試してみようとインストールしてみました。

さっそくPyCharmで設定しているkeymapを適用しようと、PyCharmでFile->Export SettingsからKeymapだけ選んでsettings.jarを出力し、AppCodeでImportしてみました。


Importは正常に終了したのですが、使ってみるとちょっとおかしい。C-nやC-pなどのキーがほとんど効かない。
PyCharmでカスタマイズしたキーのみが使えていて、もともと設定されていたキーは使えない感じです。


Keymapの設定画面をよく見てみると、KeyMapsにインポートした「MyEmacs」はありますが、PyCharmではデフォルトで用意されている「Emacsキーバインドがありません。


PyCharmで出力したsettings.pyに含まれているkeymaps/MyEmacs.xmlを見てみると、keymapタグの属性parentにEmacsと指定していますが、そもそもEmacs keymapがAppCodeでは存在しないので、設定がほぼ空になってしまっているようです。



解決方法をさがしてみると以下のページが見つかりました。
Ideaでexport、AppCodeでimportしようとして、同じ状況になっているようです。


http://devnet.jetbrains.com/thread/434372

we have investigated the problem. The problem here is that AppCode doesn't have Emacs keymap and when you expot the settings, only the difference with the default keymap is exported.
So, when you export your custom Emacs keymap from IDEA, only your changes are exported; when you import it into AppCode, these chenges are applied to the default keymap, not the Emacs keymap.

To workaround the problem you can take the keymap from the Emacs plugin and put it into /Users/anton/Library/Preferences/appCode10/keymaps/.
This should do the trick.

解決策が示されてましたのでやってみました。

解決策

/Applications/Idea.app/lib/reosurces.jarに含まれているKeymap_Emacs.xmlをコピーし、~/Library/Preferences/appCode10/keymapsに置きます。
その際、ルートのタグを削除しておきます。

これで、appCodeのPreferences->Keymapを開くとEmacs KeyMapが追加されています。



続いてsettings.pyのImportですが、すでにIdeaやPyCharmからKeyMapのimportをしている場合はimportしたKeymapをDeleteしておきます。

この状態でもう一度PyCharmからExportしたsettings.jarのImportを行えば、EmacsをベースにカスタマイズしたKeyMapが使えるようになりました。


なんでappCodeではデフォルトでEmacs Keymapが用意されていないんでしょうかね