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 |