長年連れ添った中野さんを捨ててアンシーに乗り換える

Wnn*1 のデフォルトの辞書がひどい (なにしろ「ほっきょく」がなぜか変換できない。pubdic+-sup を入れてマシになったけど) & GTK+-2 では kinput2 の変換候補一覧がウインドウの左下外に出てしまうので、Anthy + uim を使ってみる。

今のところの設定

.emacs に以下を追加

(push "/usr/local/share/emacs/site-lisp/uim-el" load-path)
(require 'uim)
(global-set-key "\C-o" 'uim-mode)

追記: この設定では最初だけ Ctrl-o で uim を利用するモードにしてから Ctrl-\ などで Anthyローマ字入力モードにするという 2 ステップ必要なので面倒。最初から Ctrl-o で Anthyローマ字入力モードに切り替えるようにする。ついでに空白を半角にする。

(push "/usr/local/share/emacs/site-lisp/anthy" load-path)
(load-library "anthy")
(global-set-key "\C-o" 'anthy-mode)
(setq anthy-wide-space " ")

また、Emacs-20.7.2 がフリーズするので、以下のようなエイリアスを設定

alias emacs 'env XMODIFIERS="@im=none" emacs'

さらに追記: doc/ELISP 読むと、こっちの方が正統派

; Plamo Linuxwnn を使う場合の設定を無効にする。
; (setq emacs-ime "wnn")
(push "/usr/local/share/emacs/site-lisp/anthy" load-path)
(load-library "anthy")
; emacsをインストールした先のprefixとanthyをインストールした先のprefixが違う場合
(load-file "/usr/local/share/emacs/site-lisp/anthy/leim-list.el")
(setq default-input-method 'japanese-anthy)
; toggle-input-method が何のキーにも割り当てられてない場合は適当に割り当てる
(global-set-key "\C-o" 'toggle-input-method)
(setq anthy-wide-space " ")
; Tamago を利用した部首変換 (id:yshl:20050926:1127758629) を Tamago なしで無理矢理使う。
(load "busyu")
(load-file "/usr/share/emacs/site-lisp/egg/menudiag.el")
やっぱり Tamago 経由で Anthy を使うことにする。 CVShttp://www.meadowy.org/~shirai/elips/egg-anthy.tar.gz からソースを入手してコンパイル.emacs の追加はこれだけ
(setq default-input-method 'japanese-egg-anthy)
キリル文字や単漢字入力が Tamago のものをそのまま使えるし、変換候補の表示が使い慣れたのものなのでいい感じ。

.xinitrc に以下を追加

if [ -x /usr/local/bin/uim-xim ] ; then
    export GTK_IM_MODULE=uim
    export QT_IM_MODULE=uim
    uim-xim &
    uim-toolbar-gtk &
    XMODIFIERS="@im=uim"
    export XMODIFIERS
fi

.Xdefaults に以下を追加。XCalendar は Anthy + uim で入力しようとすると Segmentation Fault で死んでしまうので、kinput2 のままにする。

*inputMethod:   uim
KTerm*openIm:   True
*XCalendar*inputMethod: kinput2

Anthy のオン、オフに \ を追加
.uim に以下を書いた。

(require "japanese.scm")
;; "lalilulelo" は "らりるれろ" にして欲しい。
(define ja-rk-rule
  (append '(
    ((("l" "a"). ())("ら" "ラ" ""))
    ((("l" "i"). ())("り" "リ" ""))
    ((("l" "u"). ())("る" "ル" ""))
    ((("l" "e"). ())("れ" "レ" ""))
    ((("l" "o"). ())("ろ" "ロ" ""))
    ((("z" " "). ())(" " " " " "))
    ) ja-rk-rule))
;; 全角空白 " " はあまり出て来ないで欲しい。
(define ja-space '(" " " " " "))
;; 全角英数モードには残しといてやるか。
(define ja-alnum-space '(" " " "))

Anthy をインストールするときに

私が使っている或る Linux マッシーン (Plamo 2.2.6 だが glibc 等色々 update していて原型を留めていない。bash は 2.04) の場合、AnthyGraphvizコンパイルしようとすると、途中でエラーが起こる。ライブラリをコンパイルするところで

 ar cru ファイル名 ファイル名 ... ファイル名 ファイル名 

 ar cru ファイル名 ファイル名 ... ファイル名@ファイル名 

のようにファイル名が @ で連結されてしまい、No such file or directory と言われる。
どうやら ./configure すると出来る libtool というシェルスクリプトが、下のようなコードでシステムの文字コードEBCDIC か ASCII か区別する時に、誤判定されてしまうためのようだ。

# test EBCDIC or ASCII
case `echo A|tr A '\301'` in
 A) # EBCDIC based system
  SP2NL="tr '\100' '\n'"
  NL2SP="tr '\r\n' '\100\100'"
  ;;
 *) # Assume ASCII based system
  SP2NL="tr '\040' '\012'"
  NL2SP="tr '\015\012' '\040\040'"
  ;;
esac

とりあえずこの部分を書き換えて無理矢理 ASCII と判定されるようにしてインストールした。後で bash をアップデートしよう。

*1:「私の名前は中野です」の略