2014年12月23日火曜日

KarabinerのEmacs ModeでSublime Textを除外する方法

普段KarabinerのEmacs Modeを使っているんですが、Sublime Textでの動作がいまいちだったのでsublemacsproをインストールすることにしました。

Karabinerでは複数のプロファイルを定義できるので、Sublime Text用の設定を定義して適宜切り替えればいいのですが、やはり手動での切り替えは面倒。
そこで、Sublime Textがアクティブな時だけ、自動的にEmacs Modeを無効にする方法を調べてみました。

private.xml Reference Manualの末尾からたどってEmacs Modeのソースを見てみると、"EMACS_MODE_IGNORE_APPS" で示されるアプリはEmacs Modeの対象外になるようになっているようです。

appdef.xmlというファイルを見ると、以下のように "SUBLIIMETEXT" という定義があるので、

  <appdef>
    <appname>SUBLIMETEXT</appname>
    <equal>com.sublimetext.3</equal>
    <equal>com.sublimetext.2</equal>
  </appdef>

この定義を使って "EMACS_MODE_IGNORE_APPS" を再定義してやれば良さそうです。

オリジナルの "EMACS_MODE_IGNORE_APPS" は、replacementdef.xmlというファイルで定義されているので、そこに "SUBLIMETEXT" を追加してprivate.xmlの中に以下のように定義してあげます。

  <replacementdef>
    <replacementname>EMACS_MODE_IGNORE_APPS</replacementname>
    <replacementvalue>
      ECLIPSE,
      EMACS,
      REMOTEDESKTOPCONNECTION,
      TERMINAL,
      VI,
      VIRTUALMACHINE,
      X11,
      SUBLIMETEXT
    </replacementvalue>
  </replacementdef>

これでSublime Textでの操作がだいぶ便利になりました。(^o^)/

0 件のコメント:

コメントを投稿