金曜日 3 18, 2005

S10 emacs で ATOK

メインの開発機を Sol 10 に上げたついでに、長い間使っていた mule とお別れして Sol 10 Companion CD に入っていた emacs に移行することにした。前の mule が emacs-19 ベースだったのに対し、今度は emacs-21。長らく使っていた .emacs の移行にも結構手間がかかった。

ところで、何もせずとも、emacs 上から ATOK を使うことはもちろんできる。普通のウィンドウと同じく Ctrl-SPACE で ATOK が動き出す。...がしかし、これが気に入らない。

気に入らないのは 2 点。

- Ctrl-SPACE は mark set に使いたい
- minibuffer 部に「ATOK」の文字が鎮座していて file open などの際に邪魔

もちろん、これが解決した上で emacs から ATOK が使えなければ元の木阿弥。

Ctrl-SPACE が IM に奪われてしまうのは、すぐに解決できた。

  setenv XMODIFIERS "@im=none"

これ一発で解決。ただし、.cshrc などに書いてしまうと全てのウィンドウで使えなくなってしまう(当たり前)ので注意要。emacs をラップしたシェルスクリプトで設定することにした。 これでついでに「ATOK」文字が邪魔をすることもなくなった。とても嬉しい。

後は emacs から直接 ATOK につなげられればいいのだが...。ソースを入手して再コンパイルすればできるだろうが、それでは Companion CD の emacs が役に立たなくなってしまう。再コンパイルなしに、これを解決したかった。

同僚の松田さんから「IIIMECF と Mule-UCS を使ってみては?」との助言あり。 早速最新版(と思われる)の IIIMECF-0.6 と Mule-UCS-0.84 を入手。 .emacs を修正して load-path を設定して使ってみる...が、動かない。(;_;

Mule-UCS が emacs-20 用なせいでダメなのだろうか。emacs-21 との組み合わせについてググってみるが、再コンパイルする方法しか見つからない。仕方ないので、エラーを追いかけて elisp レベルで回避できるか調べることにする。

...「xxxx なる function なんぞ知らん」と怒られている。しかしそれは autoload されている .el ファイル内でマクロとして定義されている。どうもこれがうまく認識できていないらしい。autoload を待たずに同 .el を require で読むように修正してみる。...いいらしい。

しかし今度は別のところで止まってしまう。hook の構築中に progn が cons list 内でかぶってしまって、hook を評価しようとしたところでエラーになっていた。progn を連結しているところを探して、すでに progn が付いていたら再付加しないように修正してみた。

おお、動いている。これは嬉しい。.emacs 側の設定も掲載しておく。

(require 'iiimcf-sc)
(set-language-environment "japanese");
(setq iiimcf-server-control-hostlist
      '("localhost" "localhost:9010"))
(setq coding-category-utf-8 'utf-8)
(setq default-input-method 'iiim-server-control)
(define-key global-map "\\M- " 'toggle-input-method)
(setcar default-mode-line-format "")

IIIME なので微妙に遅延があるが、やりたいことは実現できた。とても満足。

さてこれは xemacs でも同様に使えるのだろうか。こんど検証してみよう。

まずはメモ代わりで。

藤井さんの Blog 読んでいて、XP + Sol10 + JDS のインストールで苦労したとのこと。同じ苦労を少し前にしてたので、やっぱり何か書き残しておくといいことあるかな、とメモ代わりに始めてみることにしました。

週1回くらい更新していければいいかな。

About

maezo

Search

Categories
Archives
« 4月 2014
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
今日
News

No bookmarks in folder

Blogroll