Emacs キーバインドに関する Windows と Mac OSX の差異
投稿日:
Mac OS X が手元に来て7ヶ月くらい経とうとしてる。そろそろ軽度(!?)Emacs 病を患っている人間から見た Windows と Mac OS X の違いをまとめてみた。
具体的には、Emacs に関わる話としては、
- Emacs っぽいエディターについて(?)
- 普段の GUI 操作において、Emacs キーバインドがどのくらい通用するか(?)
という話があります。
しかし?って他探せば幾らでも記事あるだろうから、今回は言及しません。。。というかよくわかりません。普段からローカル環境で開発せず、研究室の Linux サーバや、自宅サーバで開発をしているので、ローカル環境でエディター使わない。
今回は?の話を書いて行こうと思います。少し分かりにくいけど、Windows の話を読めば何となく分かるはず。C-p でフォーカスを上に移動させたり、C-m が改行だったり、C-Space がマークセットだったり、M-v で1ページ分スクロールできたり、といった操作を、webブラウザや、ファイラなどでも使うことです。
Windows
まずそもそも標準では全くサポートされていません。?を実現させる為には、 窓使いの憂鬱、Xkeymacsなどのソフトウェアが必要になります。以下、Windows 上での Emacs キーバインド環境の特徴。
- サポートしている Emacs キーバインド多い!マークセットできるのは windows だけ(?)。C-x から始まる2ストロークキーバインドに対応してるのも特徴。
- アプリケーションによって、emacsキーバインドを有効にさせるか否かを設定することが可能。ちょうべんり
- 時々入力キーをフックし損ねて大変なことに(例:C-nでスクロールしようと連打 → フックし損ねまくる → 新規ウィンドウ大量生成 → はんのうがない ただの はこ のようだ)
- 時々挙動へん。Xkeymacs に限った話ですが、例えば「C-m と入力すると、Ctrl+Return の入力になってる。」とか、「『Shift+Tab』と入力しようと S-C-i とタイプする→Shift キーがロックされて解除できなくなる」など
- MS Office と相性悪過ぎ。ごくごくタマに Office 落ちる。
- MS IMEと相性悪い。(ので、MS IME の時は無効化し、MS IME 自体のキーバイン変更機能を利用)
実は、VISTA になってからの状況がよくわかってません。とりあえず Xkeymacs は、VISTA 上で問題なく使えました。
Mac OS X
私が知っている限りだと、二通り存在します。
- 標準のemacsキーバインド(ただしテキストエリア限定)
- KeyRemap4MacBook
標準の方も、素晴らしい点があるのですが、テキストエリア限定なのが残念。
KeyRemap4MacBook の特徴を下でまとめます。
- 安定してる。フックし損ねた経験無し。
- マークセットできない。。。(標準だと C-i で出来た記憶があるのですが。)
- 特定ソフトウェアのときは、無効化するという機能がついて入るのですが、無効化できるソフトウェアが予め決まっている。ソースコード書き換えれば可能なようです。iTerm 使えない。
- 日本語入力システムに対する Emacs キーバインドは、入力対象のソフトウェアに依存してしまう(例:Terminal.app の時だけ Emacs キーバインドを無効化すると、Terminal.app への日本語入力時も無効化されてしまう)。凄く困ってる。
最後のは、OS の構造上仕方の無い問題なんでしょうかね。。。
ついでに Linux(GNOME)
GNOME の標準機能(要設定)、keyfake の二通り。
GNOME の標準機能は、Mac OS X の標準機能と似た感じ。テキストエリア限定。
keyfake は。。。うごかにあ!フツーにコンパイルしちゃダメなのかな。
まとめ
Windows、Mac OS X、Linux(GNOME) における Emacs キーバインドの対応状況を確認しました。
- Windows
- 不安定だけど多機能、マークセットできる
- Mac OS X
- 安定してる。日本語入力システム、他アプリケーションとの兼ね合いがうまくいってない
- Linux(GNOME)
- が、がんばれ!しかし皮肉ですね。。。 ということで、Windows が一番好きです。 ### しかし。。。 xkeymacs, 窓使いの憂鬱、KeyRemap4MacBook、keyfake のいずれも日本人が開発してる。。。?HENTAI!HENTAI!HENTAI!