emacsではomeletを使用する場合


追記: 最近、emacsでことえりでの入力を可能にするパッチが でました。よって以下のように必ずしもomeletを使用しなければならないわけではありません。 くわしくは、OS Xハッキング第83回を。

(※下記の変更は、Tesla-plusの最新のソースでは、Tesla.cppで#define OD_EISUを定義するだけでできるようになっています。くわしくはREADME.rtfを)

omelet

現在のemacs(21.3.50,carbon, terminal)は、ことえりによるインライン入力に対応して いないので、Teslaでは親指シフト入力を行なうことができません。この場合、omeletという lispを使うことで、FreeWnn日本語変換サーバーを用いた親指シフト・インライン入力が 可能になります。

ただし、emacsはMacの英数キーをそのままでは認識しないので、英数キーを他のキーコードに チェンジした上で、左シフトとして設定してやる必要があります。通常は、X-Windowを立ち上げて、xmodmapによってキーコードを変更したりするのですが、omeletを使うためだけにX-Windowを立ち上げるのは面倒です。

そこで、キーチェンジャーの機能を持つTeslaに、このomeletのための英数キーチェンジを やらせることにします。もちろん、他のアプリケーションではTeslaによる、ことえり親指入力も 従来どおり使えます。

(以下はFreeWnn日本語変換サーバーがすでに導入され、emacsでローマ字入力ができるようになっていることが前提です)

設定法

具体的には、Teslaのソースに加筆して、ことえりオフ時のみ英数キーを任意のキーコードに チェンジするように設定します。

Tesla-plus2の場合、Tesla.cppの222行目あたりに、こう書きます。
	if((eventType == 10 && gTeslaOn == false)) {
		switch(key) {
		case 102:	
		key= 94;	
		break;	
		}
	}

上の例では英数キー(102)を"_"(94)に変更していますが、F11(103)などに変更することも できます。ただ、F11で試したところ、carbon-emacsでは左シフトとして問題なく機能しましたが、JTerminal上のemacsでは、うまく働かなかったので、両方使う場合は、なるべく文字キーに 変更してください。

そして、.emacsファイルで親指シフトキーを設定します。(同梱のomeletテスト版用)
;; omelet
(setq load-path (cons (expand-file-name "~/bin/elisp")
                         load-path))
(require 'omelet)
(setq omelet-rshift-keys '(" " [henkan]))  
(setq omelet-lshift-keys '("_" [muhenkan]))
"~/bin/elisp"はomelet.elを置いたディレクトリです。F11などを左シフトにするには、
(setq omelet-lshift-keys '([f11] [muhenkan]))となります。