時々帖

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

iiimecfのキー設定

iiimecfのキーバインドを変更する方法を調査してみた。

Emacs + IIIMECF + ATOK X3 = 結構シアワセ

やり方は上記のページに書いてあったのだが、文節移動をCtrl-f、Ctrl-bに割り当てる方法が分からない(elispの変更のみで)。
基本的にはiiimcf.elのiiimcf-keycode-spec-alistの要素にキーとその時の動作を定義したリストを追加してやればよい。
例えば、leftキーと同じことをCtrl-kに割り当てたいなら、

(11 37 65535)


を追加してやればよい。
1番目の要素はキーを表していて(この場合はk)、2番目は動作(この場合はleft)、3番目はよくわからない。

問題は文節前移動、文節後移動はShift+right、Shift+leftで出来るのだが、これをどうやってCtrl-f、Ctrl-bに割り当てるかだ。
right、left単独ならよいが、Shiftをどうやったら割り当てられるのか。

ソースを読んでみると、4番目の要素が修飾キーに関係しているっぽい。
修飾キーはiiimcf-modifier-spec-alistで各キーごとにどのビットを立てるか定義されていて、shiftキーは1となっている。
そこで4番目の引数に1を追加してやると。ビンゴ!!

ということで、iiimp.elに以下のような変更を加えてやった。

*** iiimcf.el.old  Sun Dec  9 08:54:54 2007
--- iiimcf.el Fri Dec 4 20:48:20 2009
***************
*** 284,289 ****
--- 284,298 ----

(defvar iiimcf-keycode-spec-alist
`((13 10 0)
+ (11 37 65535) ; C-k -> left
+ (12 39 65535) ; C-l -> right
+ (9 37 65535) ; C-i -> left
+ (15 39 65535) ; C-o -> right
+ (7 27 65535) ; C-g -> escape
+ (16 38 65535) ; C-p -> up
+ (14 32 65535) ; C-n -> space
+ (2 37 65535 1) ; C-b -> shift+left
+ (6 39 65535 1) ; C-f -> shift+right
(32 32)
,@(mapcar #'(lambda (x) (list x x 0))
(iiimcf-numseq 1 31))


ただ、ソースをもう一度みてやると、この設定では、Ctrl-fを押したときにCtrlとShiftキーがどちらも送信されるように見える。
まあ、動いているからいいか。。
スポンサーサイト

テーマ:UNIX/Linux - ジャンル:コンピュータ

  1. 2009/12/05(土) 01:34:29|
  2. Emacs
  3. | トラックバック:0
  4. | コメント:0
<<flymakeのエラーをanythingで一覧表示 | ホーム | ATOK+IIIMECF+Emacs>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://namikister.blog101.fc2.com/tb.php/19-bb5dca19
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。