canna をいくつかのアプリケーションから使う時の最低限の設定を書く。 図 に示したように、canna を使う際に、変換 クライアント(kinput2)を経由 (その際、XIMプロトコルで通信) して変換を 行うものと、自前で変換クライアント機能を内蔵しているもの (mule や emacs) に大別できる。
kterm, tgif, mozilla, sylpheed, gimp などの X 上のアプリケーションは、変換ク ライアントである kinput2 経由で、日本語入力をおこなう。この時、通信のプ ロトコルとして、XIM プロトコルを用いる。
通常は、X から login した場合に実行される ~/.xsession で起動する。kinput2 が起動しているかどうかは、
% ps uxw | grep kinput2で確認することが出来る。何も表示されない場合は、
% kinput2 -canna -cs cannaserverのホスト名 &と手動で立ち上げるか、~/.xsession に書いて login し直す。ここで、-canna は、変換サーバーとしてcannaサーバーと通 信することを表し、そのサーバーのホスト名を -cs オプションで与える。 kinput2がどの変換サーバーと通信 できるかはコンパイル時のオプションで決まっていて、
% kinput2 -versionで確認できる。その結果、例えば、
kinput2 version 3.1 (2002/10/03) options: [Wnn] [Canna2]であれば、Canna と Wnn に対応しているので、-canna は必須だが、
options: [Canna2]だけであれば、Cannaとしか通信できないので、-canna は不要である。
また、cannaserverのホスト名は、stex の場合は、s1 を指定する。なお、 環境変数 CANNAHOST が設定されていれば、それを読むので、-cs の指定 はなくてもよい。kinput2 を立ち上げたときに、変換サーバーと通信で きない場合には、
Warning: かな漢字変換サーバと通信できませんというメッセージを出し、実際にアプリケーションで、"かな" から" 漢字" に変換しようとしたときに、同じメッセージを出す。この時は、
% cannacheck -v -cs cannaserverのホスト名で、cannaserver が立ち上がっているか確認し、立ち上がっていない 場合には、管理者に連絡して、立ち上げてもらう。
通常、XIM プロトコルに対応した国際化したアプリケーションは、環境変数 XMODIFIERS を見て、変換クライアントを探す。そこでは、
LANG=ja_JP.eucJP XMODIFIERS=@im=kinput2のふたつの環境変数が関係する。現在設定されている環境変数は (csh,tcshの場合)、
% printenvで見ることができる。ふたつの環境変数が設定されていないときは、
% setenv LANG ja_JP.eucJP % setenv XMODIFIERS "@im=kinput2"と入力して設定するか、または、これらを /.cshrc に書いて、
% source ~/.cshrcで、再度読み込む。
各アプリケーションで、日本語入力の起動
以上が正しく設定されていれば、日本語を入力したい場所で、Shift キーを押し ながら Space キーを押すと、日本語入力モードになる。何も起こらない場合は 設定を見直す。アルファベット入力モードに戻るには、再度、Shift + Space を 押す。また、Ctrl + o (オー) でも、同様な動作になる。
上記の設定だけでうまく行かない場合は、いくつかの可能性が考えられる。
XIM に対応していない場合はあきらめるしかないが、複数のプロトコルに対応し ている場合には、設定を正しく行えば、日本語入力が可能になる。ただし、その 設定はアプリケーション毎に異なるので、それぞれのアプリケーションの manual page や 開発元の WEB page や インターネットで検索して設定するしかない。 また、周りに詳しい人がいれば、その人に聞くのが早道である。 一例として、お絵書きソフト tgif の場合について、関係する設定を Appendixに書いておく。
mule では、変換クライアント機能を内蔵した canna(canna.el)9 を利用できる ので、 kinput2 を必要としない10。 必要最低限の設定は、~ /.emacs ファイルの
(load-library "canna") (setq canna-server "cannaサーバーのホスト名") (canna)の3行である。ここで、cannaサーバーのホスト名は、stex の場合は、 s1 とする。Ctrl + o (おー) で、日本語入力の ON/OFF を行う。
(global-set-key "\C-\ " 'canna-toggle-japanese-mode)を加えると、Ctrl + \でも、日本語入力の ON/OFF が行えるようになる。
普通に作成した emacs2111 は、XIM に対応しているので、X 上で立ち上げた emacs の場合、kinput2 経由での日本語入力が可能である。 kinput2 を経由した日本語入力で述べたように、Shift + Space (または、Ctlr + o ) で日本語入力の ON/OFF が行える。ただし、この方 法では、X環境以外 (例えば、Windows機から login している場合) では日本 語入力が出来ない。また、以下に説明する emacs自体の変換クライアント機能は、 強力なカスタマイズができるので、kinput2 による日本語入力ではなく、emacs 自体の変換クライアント機能を使うことを強く勧める。
このセクションで説明する emacs 自体の変換クライアント機能を使う場合には、 XIM 経由での日本語入力機能は不必要であるだけでなく、邪魔になる場合がある。 例えば、「漢字変換モード]で、変換対象の文節を伸ばそうとして、Ctrl+o を押 すと、XIM の ON/OFF になってしまい、文節を伸ばすことができない。XIM機能を使 わなくするためには、環境変数 XMODIFIERS を未設定にすれば良いのだが、シェ ル環境全体でこのように設定してしまうと、他の X アプリケーションからも、 日本語入力ができなくなってしまうので、emacs の場合だけに、そうするには、 ~/.cshrc に
alias emacs env XMODIFIERS=@im=none emacsと書いて、login し直すか、すぐに反映させるためには、
% source ~/.cshrcで、設定を再読み込みする。
emacs 20 以降では、mule の機能の多くは、emacs 本体に統合されたが、 canna.el や たまご(Wnnのemacsクライアント)の機能は、含まれていない。 kinput2 に頼らず、emacs 単独で日本語入力環境を整えるために、いくつかの方 法が行われている。
これらの他にも、 いくつかの方法がある ようであるが、 ここでは、Muleプロジェクトの後継のひとつ として開発されている tamagoVer.412 を用いた方法を述べる。 以後の記述は、FreeBSD の ports でインストールした tamago Ver.4 を対象にしている。現在、ports でインストールすると、tamago-4.0.6-20011028.patch というパッチが当たったものが作られるので、 元々の tamago4 とは、少し違うかも知れない。
tamago Ver.4 がインストールされているかは、システムの emacs lisp directory にegg directory があるかどうかで判断できる。FreeBSD 4.X 上の emacs 21.3 の場合は、
/usr/local/share/emacs/21.3/site-lisp/egg/という directory があれば、tamago Ver.4 が使えると考えて良い。 FreeBSD の ports でインストールする場合は、/usr/ports/editors/tamago。 システムに、tamago Ver.4 がインストールされていれば、~/.emacs または ~/.emacs.el 13 に次の記述を加えれば、canna が使えるようになる.
(setq default-input-method "japanese-egg-canna") (setq canna-hostname "cannaサーバーのホスト名")ここで、cannaサーバーのホスト名は、stex の場合は、s1 とする。 Ctrl + \で、日本語入力の ON/OFF を行う(たまごの標準キー)。 mule やkinput2 の場合のように、Ctrl + o でも、ON/OFF を行うためには、
(global-set-key "\C-o" 'toggle-input-method)を加える。
これらは、基本的な操作には、大きな差はない。また、キーバインドは、設定 ファイルでカスタマイズ可能である。以下では、ローマ字入力で「ひらがな」 が表示されている状態をフェンスモード、Spaceキーを押して文節を分割 し、漢字に変換された状態を漢字変換モードと呼ぶ。 C-x は、Ctrl キーを 押しながらxキーを押す操作を表し、ESC-x は、ESCキーを押した後で x キーを 押すことを表す。
変換起動キーと変換終了キー(括弧内は、キーにバインドした場合)
kinput2 | canna/mule | tamago4/emacs |
Shift+Space, C-o | C-o, (C-\) | C-\, (C-o) |
フェンスモードでのキーバインド
機能 | kinput2 | canna/mule | tamago4/emacs |
漢字変換モードへ | Space | Space | Space, C-w |
現在のまま確定 | Return,C-m | Return,C-m | Return,C-m |
左に移動 | ←, C-b | ←, C-b | ←, C-b |
右に移動 | →, C-f | →, C-f | →, C-f |
左端へ移動 | C-a | C-a | C-a |
右端へ移動 | C-e | C-e | C-e |
前の1文字削除 | BS, C-h | BS, C-h | BS, C-h |
カーソル上の1文字削除 | DEL, C-d | DEL, C-d | DEL, C-d |
カーソル以降を削除 | C-k | C-k | C-k |
フェンス内を消去 | C-g | C-g | C-c |
字種変換 | ↑,C-p,↓,C-n | ↑,C-p,↓,C-n | |
全角大文字に | C-u | C-u | |
全角小文字に | C-l | C-l | |
canna拡張モードへ | HELP | HELP | |
ひらがなに | ESC-h | ||
カタカナに | ESC-k | ||
全角文字に | ESC-> | ||
半角文字に | ESC-< | ||
半角英数入力 | q | ||
全角英数入力 | Q | ||
全角スペースの入力 | @@ | @@ | Q Space |
*
1 : DEL や BS キーの動作は、.canna や .emacs の設定に依存する。
*
2 : この後、↑(C-p)、↓(C-n) で、
ひらがな ←→ カタカナ
←→
半角カタカナ ←→
全角英数 ←→ 半角英数
を循環する。
canna のこのモードを、字種変換モードと言う。
*
3 : HELPキーのない場合は、.canna に (global-set-key "\F1"
'extend-mode) と書いておけば、F1 を代用できる。
*
4 : HELPキーのない場合は、ESC-x canna-extend-mode を適当なキーにバインドすればよい。
*
5 : フェンス内のアルファベットのみが変換され、かなには影響しない。
*
6 : 入力後、確定すれば、通常のローマ字入力に戻る。同じフェンス内でロー
マ字入力に戻るには、C-g。
漢字変換モードでのキーバインド
機能 | kinput2 | canna/mule | tamago4/emacs |
現在のまま確定 | Return,C-m | Return,C-m | Return,C-m |
フェンスモードへ戻る | C-g,BS | C-g,BS | C-c,BS |
現文節をフェンスモードへ | C-c | C-c | |
文節を伸ばす | C-o | C-o | C-o |
文節を縮める | C-i | C-i | C-i |
次の候補 | Space,C-n,↓ | Space,C-n,↓ | Space,C-n,↓ |
前の候補 | C-p,↑ | C-p,↑ | C-p,↑ |
候補一覧表示 | Space2回,C-w | Space2回,C-w | ESC-s |
左文節に移動 | ←, C-b | ←, C-b | ←, C-b |
右文節に移動 | →, C-f | →, C-f | →, C-f |
左端文節へ移動 | C-a | C-a | C-a |
右端文節へ移動 | C-e | C-e | C-e |
現文節を全角大文字に | C-u | C-u | |
現文節を全角小文字に | C-l | C-l | |
現文節をひらがなに | ESC-h | ||
現文節をカタカナに | ESC-k |