OS のキーバインドを Emacs 風にするツールまとめ

  • 109
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

Emacs を使っていると Emacs 以外のアプリケーションを使っている時もつい手癖で Emacs のキーストロークを打ってしまい、訳の分からないことをしてしまうことがあると思います。
(一行上に移動しようとして C-p を打ったら印刷ダイアログが出てきて発狂しますよね)

じゃあ全部 Emacs 風にしちゃえばいいじゃん!ということでいろいろ試した結果をまとめます。

Windows

Windows 7 Pro での動作は確認してます。 8 はわからないです…

keyhac

いちばんオススメです。
スクリプトが Python なので AutoHotKey のように新しく変な文法を覚える必要がないのがありがたいです。
Python は覚えておいて損はないと思うので触ったことない人でも、挑戦してみるといいかもしれません。

Emacs 風にするスクリプトはこれとかを元に自分好みに改変すれば良いと思います。

AutoHotKey

少し前はググったらだいたいこっちが引っかかった気がします。
こちらも自由度が高く、かなり Emacs に近い操作感にできますが、まぁ keyhac がいいと思います。

ちなみに Emacs 風にするスクリプトはこれを元に改造して使ってました。

XKeymacs

これは私が Emacs 風を実現するために探し始めて一番最初に見つけたやつなんですが、まともに動きませんでした。

OS X

KeyRemap4MacBook

Mac ならこれ一択でしょう。
インストールした直後から設定項目がかなり豊富で、さらに GUI を使って設定できるのでとても楽です。

欲しい設定がなかった時は自分で追加することもできるのですが、 XML で書かなきゃならない上に分かりづらいのが難点です。

まあ私が欲しかったのは C-\C-o で IME 切替することなのでそれだけ書きました。

private.xml
<?xml version="1.0"?>
<root>
  <list>
    <item>
      <name>Control+O to Command+Space</name>
      <identifier>private.control_o_to_command_space</identifier>
      <autogen>__KeyToKey__ KeyCode::O, ModifierFlag::CONTROL_L,
                            KeyCode::SPACE, ModifierFlag::COMMAND_L</autogen>
    </item>
    <item>
      <name>Control+\ to Command+Space</name>
      <identifier>private.control_bs_to_command_space</identifier>
      <autogen>__KeyToKey__ KeyCode::BACKSLASH, ModifierFlag::CONTROL_L,
                            KeyCode::SPACE, ModifierFlag::COMMAND_L</autogen>
    </item>
  </list>
</root>

Ubuntu (Linux)

13.10, 14.04 で試しました。
結局 OS 全体をっていうのは未だできてないのですが、ターミナルと Firefox の Emacs 化で大体事足りちゃってるのでもういいかなと思ってます。

Gnome の設定

以下のコマンドをターミナルで実行します。

$ gsettings set org.gnome.desktop.interface gtk-key-theme Emacs

あるいは、 gconf-editor を起動して /desktop/gnome/interface/gtk_key_themeEmacs に書き換えると、 C-f C-b C-n C-p とか C-h あたりは使えるようになります。
ターミナル内だけであればとりあずこれで問題ないかと。

AutoKey

Ubuntu 用を探しててとりあえず見つけたのがこれなんですが、いまいちちゃんと動いてくれない…
keyhac と同様 Ptyhon でカスタマイズする感じなので良さげなんですけど、ログを見るとエラーだらけ。
もうメンテナンスもされてないようなので、今後の期待もできません。

ウェブブラウザ

OS じゃないけど、重要度は OS に引けをとらないと思います。

KeySnail (Firefox)

これに出会ってからはもはやブラウザは Firefox 以外ありえないと思うようになりました。
そのくらいパーフェクトに Emacs 使いの要求を満たしてくれます。

  • Emacs ライクな初期化ファイルによるカスタマイズ (~/.keysnail.js)
  • キーボードマクロ (F3 で記録, F4 で再生)
  • キルリング (履歴)
  • 前置引数システム (C-u)
  • anything.el ライクなセレクタシステム
  • 多機能なプラグインシステム
  • etc...

と Emacs がしばしば環境と呼ばれるように、 Firefox を「環境」にしてくれます。

必須プラグインは、マウスなしで自由にリンクを飛べるようにする HoK 、 anything ライクな UI でタブ操作を可能にする Tanything 、これまた anything ライクな UI でブックマークを開ける bmany 、の 3 つでしょうか。

ちなみに、設定ファイルやプラグイン等は全て JavaScript で書きます。
というかプラグイン自体全て JavaScript で実装してあるので凄い JavaScript に詳しいんだなぁ… と思ったら作者が js2-mode の人でした。そりゃ詳しいわけですわ。

Emacs-mode (Chrome)

Chrome にも Emacs っぽくしようという拡張がありました。
…が、 KeySnail を経験した後だとどうしてももう無理ですね…
気休め程度に。

まとめ

とりあえずこんなところです。
私は、自宅では Mac, 仕事では Windows と Ubuntu を使っているという、 OS 御三家を制覇してしまったのでそれぞれのツールでもまとめておくかと思った次第です。

こんなツールもあるよとか教えていただけると嬉しいです。
それでは快適な Emacs ライフを。