Part3 コンソールで使うインプットメソッド

コンソールではFEPと組み込みの2種類の形態が存在する事はPart1で述べた。前者の例としてはskkfepやcanfep、後者の例としてはEmacsやvimなどが挙げられる。前者は全てのコンソール用アプリケーションに使え汎用性が高いと言えるが、逆に個々のアプリケーションに組みこまれたものの方がアプリケーションとの協調動作が行いやすく、一長一短であると言える。

アプリケーション組み込みのもの

Emacs (SKK)

SKKの特徴などに関してはPart2のSKKの解説を参照してほしい。

インストール

Debianの場合は

# apt-get install ddskk skkdic

でインストールできる。

Fedoraの場合は

# yum install ddskk

でインストールできる。

設定方法

ここからしばらくはEmacs上で動作するソフトウェアの紹介である。SKKを使うために必要な設定は、~/.emacsに

(set-input-method "japanese-skk")

の一行を書くだけである。他にも使いそうな~/.emacs用の設定をまとめてみた。各行についての説明も書いてあるので、参考にして欲しい。なお、原稿執筆時点での最新のSKKは、2003年8月にリリースされた12.2.0である。

SKKの設定

(set-input-method "japanese-skk")
;; 入力システムをSKKに設定する。必要な一行である。

(setq skk-use-jisx0201-input-method t)
;; 半角カナモードを使用するかどうか。tなら使用する。
;; nilなら使用しない。お好みでどうぞ。

(setq skk-large-jisyo "/usr/share/skk/SKK-JISYO.L")
;; L辞書(SKKの辞書として配布されている中で一番多きいもの)
;; がどこに置いてあるかを指定する。環境によって変わって
;; くる。

(setq skk-isearch-mode-enable nil)
;; migemoとの兼ね合いで、検索時にSKKがonになっていると
;; 欝陶しい場合があるので抑制する。tならSKKがインクリ
;; メンタルサーチ時も有効になっている。

使用法

SKKの入力方法には少し癖があるが、慣れるとこれはこれで使いやすい。漢字の入力についてはとりあえず忘れて、まずはひらがな、カタカナ、アルファベットを入力する事を考えよう。

SKKには4つのモードが存在する。ひらがなモード、カタカナモード、半角英数モード、全角英数モードの4つである。ここでは前の2つをまとめて日本語入力モードと呼ぶことにする。ひらがなモードへの移行はC-jである。半角英数モードへの移行はl(紙面ではわかりにくいと思うが、小文字のLだ)、全角英数モードへの移行はLである。日本語入力モードにおけるひらがなモードとカタカナモードのトグルにはqを使う。

SKKではそれぞれのモード間で直接にモード遷移できない場合がある。例えば、半角英数モードと全角英数モードの間は直接は遷移できない。あたりまえといえばあたりまえの話だが。

使ってみるとわかるのだが、SKKでは普通に入力するとひらがな(もしくはカタカナ)が入力されて即確定されてしまい、漢字を入力する事ができない。漢字を入力するためにはどうすればいいのか?それは次項で説明するが、SKKでは送り仮名のあるなしで、入力の仕方が違う。

送りがなのない単語を変換する

SKKでは、単語が始まる合図は大文字で入力する事である。例えば、「毎日」という単語が入力したければ、「Mainichi」と入力する事になる。変換開始は一般的なソフトウェアと変わらずスペースキーである。だから、「毎日が日曜日」という文章が打ちたければ、「Mainichi[SPACE]gaNichiyoubi[SPACE]」と入力する事になる。なお、[SPACE]はスペースキーを押す事を表している。

複数の変換候補から候補を選択する場合、本家と亜流で動作が違う。本家SKKとskkinputでは、変換候補は一度に7つまで表示される。候補が7つより多い場合には、スペースキーで次の7つの候補が表示される。スペースキーをページ送りに使うという事は、候補の選択は何で行う事になるのだろうか?候補が表示される場合asdfjklで表示された候補を選択、スペースキーで変換候補の一覧を1ページ送るという動作になる。uim-skkの場合は、普通の連文節変換の場合と同様に、スペースや矢印で候補を移動し、リターンで候補を選択する。skkfepでは候補は1つしか表示されず、ひたすらスペースで送っていく事になる。

いろいろ書いてだいぶゴチャゴチャしてきたようだ。SKKでよく使うキー一覧を用意したので、混乱したらそちらを見て欲しい。

送りがなのある単語を変換する

送りがなのある単語を変換する場合は、送る時にも大文字を入力する。例えば、「美しい」という単語を入力する場合は「UtukuSii」と入力する事になる。他は送り仮名のない単語と変わらない。

この送りがなのある場合の入力が、SKKでの入力を覚える際の最大の関門である。ここさえ乗り切れば、ほかは大して難しくない。

単語を登録する

辞書にある単語を変換しきってしまうと、SKKは自動的に単語登録モードに入る。読みは既に入力されているので、あとは対応する単語を入力すれば、単語登録は終了である。SKKは文法知識を用いないので、登録時にも品詞などを登録する必要がなく、気軽に単語を登録できる。これもSKKの良いところだ。

使ってみるとわかるが、SKKは高度な文法解析などは一切行っていないのに、それなりに快適に日本語を入力する事ができる。この快適さにはいくつかの原因があると筆者は考えている。まず、日本語の文章で一番頻度の高いひらがなとカタカナを直接に確定するようにしてしまっている事。それから、変換開始を明示的に指示するで、「こんな変換して欲しくないのに!」というストレスをユーザに感じさせない事や、変換したい単語が辞書に登録されていなかった場合は即単語登録モードに入る事。こういった小さな事の積み重ねが使いやすい入力環境を実現しているように思われる。

矢印や記号を入力する

日本語入力モードでzhを入力すると←が、zjで↓が、zkで↑が、zlで→が出る。他にもz.で…が出たりとか、「z+なにか」でいろいろ記号が表示される。この機能はデフォルト状態では本家SKKとuim-skkでしか使えない。skkinputでこの記号入力を行うための設定は後で紹介する。

半角カナを入力する

日本語入力モードでC-qを押すと半角カナモードに移行し、半角カナが打てるようになる。この機能も本家SKKとuim-skkでしか使用できない。また、本家SKKでは封印された機能で、明示的に設定を解除しないと使えない。

余談だが、半角カナと言うと「半角カナなんて存在しません」と怒る人もいるので、そういう人の前では「JIS X 0201カナ」と言うと良い。

ちょっとだけアルファベットを入力したい

/を入力してから入力すると、アルファベットが入力できる。入力してからC-jを押せばそのまま確定できるし、そこからさらに変換をする事もできる。例えば、「/bim」と入力してスペースキーを押して変換すると、「境界積分法」と変換される。この機能は今回紹介した全てのSKKで使用できる。

見出し語の補完

単語の入力中、つまり▽の表示されている状態でタブキーを押すと、個人辞書にある送りがな無しの単語から補完してくれる。例えば、筆者の手元の環境では、「▽き」という状態でタブキーを押すと、「▽きしゃ」と補完してくれる。この機能を上手く活用すると、一度入力した単語に関しては次からはタイプ数を減らす事ができる。一回で目的の単語が出てこなかった場合には、タブキーを複数回叩けば次々に候補は変わっていく。この機能は本家SKKとskkinputでしか使えない。

Emacs (Anthy)

インストール

Debianの場合は、

# apt-get install anthy-el

でインストールできる。

Fedoraの場合はPart2のAnthyのRPMをインストールした時点で、Emacs用のクライアントもインストールされている。

設定方法

EmacsからAnthyを使うために必要な設定は、~/.emacsに

 (set-input-method "japanese-anthy")

の一行を書くだけである。昔のAnthyはXemacsとの相性が悪く、Xemacsでは未確定文字列の編集中にバックスペースが使えないなどの不具合があった。その頃の悪い印象を持っている方もおられるかもしれないが、現在のAnthyはXemacsでもちゃんと動くので安心して欲しい。

カスタマイズ

かな入力をしたい場合は~/.emacsに(anthy-kana-map-mode)の一行を追加するだけで良い。

Emacs (PRIME)

特徴

PRIMEをEmacsから使う際は、専用のEmacs用のクライアントを使用する。このクライアントの公式サイトはhttp://taiyaki.org/prime/emacs/である。

インストール

Debianの場合は

# apt-get install prime-el

でインストールは完了である。

Fedoraの場合はまず

# yum install apel

として、Emacs用のライブラリであるAPELをインストールしておこう。次に、http://www.digital-genes.com/~yatsu/prime/FedoraCore1/から

をダウンロードしてきて、ダウンロードしてきたRPMをrpmコマンドでインストールしよう。どこかにディレクトリを作ってそこにこれらのRPMをダウンロードしてきておくと、

# rpm -Uvh *.rpm

とするだけで一気に全部インストールできて面倒が少ない。

設定方法

EmacsからPRIMEを使うために必要な設定は、~/.emacsに

(set-input-method "japanese-prime")

の一行を書くだけである。

カスタマイズ

Emacs (Canna)

EmacsからCannaを使用するための方法はいくつか存在するが、今回はYC(Yet another Canna client)を用いる方法を紹介する。

YCはicannaというコマンドを使う事で、UnixドメインソケットでCannaサーバと通信する事ができる。(後述のtamagoではUnixドメインソケットでの通信ができない。)

YCの公式サイトはhttp://www.ceres.dti.ne.jp/~knak/yc.htmlで、YCの最新版は2004年3月にリリースされた4.0.8である。

インストール

Debianでは

# apt-get install yc-el

でインストールできる。

Fedoraでは

設定方法

~/.emacsに

(load "yc")
(global-set-key "\C-\\" 'yc-input-mode)

と書くと、C-\で日本語入力モードのオン・オフができるようになる。

カスタマイズ

YCはcustomizeに対応しているので、Emacs上でM-x customize-group ycを実行する事でカスタマイズできる。

Emacs (Wnn)

WnnをEmacsから使用する際にはtamagoを使用する。tamagoの公式サイトはhttp://www.m17n.org/tamago/である。tamagoの最新版はtamago-4.0.6.tar.gzである。

インストール

Debianの場合は

# apt-get install egg

でインストールは完了する。

FedoraではRPMが存在しなかった。探してはみたのだが、どうも、tamagoのRPMは存在しないようだ。しかたがないのでtarballからインストールしようとしたところ、makeに失敗してしまい、インストールできなかった。さらにこのmakeの壁を乗り越えても、Fedoraに入っているFreeWnnのTCP/IPによる通信機能は殺されており、結局tamagoからFreeWnnを使うことはできない。

これらの事からみて、Fedoraはどうも日本語入力する際にはXIMを使え、というスタンスのように見える。

設定方法

~/.emacsに

(set-input-method "japanese-egg-wnn")

と書くだけで使えるようになる。

カスタマイズ

eggはcustomizeに対応しているので、M-x customize eggで設定用の画面を出す事ができる。

jvim

特徴

jvimはvimバージョン3を土田健一氏が日本語化したものである。具体的には各種日本語エンコーディング(SJIS/JIS/EUC/UTF-8)への対応やcannaのサポートがおこなわれている。(他に日本語化とはあまり関係ない機能拡張も含まれている。)

公式サイトはhttp://hp.vector.co.jp/authors/VA003457/vim/である。公式サイトで配布されているのはWindows用のパッチとオリジナルのVim3からの差分であり、これ1つでjvim、というtarballは配布されていない。

skkfep内蔵版jvimも木原英人氏により配布されている(http://www1.interq.or.jp/~deton/jvim-skk/にて配布されている)が、今回紹介するのは土田氏によるもののみである。

インストール

Debianの場合は

# apt-get install jvim-canna

でインストールは完了する。Fedoraの場合はRPMが用意されていないので、自力でパッチを当ててビルドする必要がある。土田氏の公式サイトからjvim.2.1b.tar.gzを、VIM本家からvim-3.0.tar.gzを、まずダウンロードしてくる。ビルド手順は以下の通り。

$ tar xvzf vim-3.0.tar.gz
$ mv jvim.2.1b.tar.gz vim
$ cd vim
$ tar xvzf jvim.2.1b.tar.gz vim
$ patch -p0 < jvim.diff
$ cd src
$ cp makjunix.mak makefile

"makjunix.mak" ファイル内の

        1:   configuration dependend
        2:   various choices
        2-2: Select Japanese Input System dependend
        3:   hardware dependend

を環境にあわせて設定する

$ make
# make install

これは少々めんどくさすぎると思うので、make直前までこちらで作業したtarballをhttp://tkng.org/unixuser/に置いておく予定であるが、ここましてjvimを使うぐらいなら、後述のcanfepを使った方が手軽で良いような気がする。

設定方法

設定は特に必要ない。

使用方法

当然ではあるが、日本語入力はInsert Modeでしかオンにならない。

FEP形式のもの

skkfep

公式サイトはhttp://homepage2.nifty.com/aito/soft.htmlである。

特徴

skkfepは伊藤彰則氏によって開発された、コンソールでSKKライクな日本語入力環境を実現するソフトウェアである。

導入方法

# apt-get install skkfep dbskkd-cdb

で良い。システム辞書をskkfepから直接使用するように設定するためにはコンパイルしなおさないといけないので、辞書サーバを使った方がお手軽である。

設定方法

特に設定は必要ない。どこか別のマシンでSKKの辞書サーバを動かしている場合には環境変数SKKSERVERにホスト名を設定しておくと良い。デフォルトはlocalhostなので、ローカルホストで辞書サーバを動かしている場合は設定は必要ない。

使用方法

使い方に特に難しいところはなく、コンソールからskkfepと入力して起動するだけである。キーバインドもオリジナルのSKKと同じ感じで、SKKに慣れている人であれば特に問題は無い。

使用例

本家SKKの場合と同じ。

canfep

公式サイトはhttp://www.geocities.co.jp/SiliconValley-Bay/7584/canfep/である。

特徴

canfepはNozomu Kobayashi氏によって開発された、コンソールでCannaによる日本語入力を行うためのFEPである。

インストール

DebianでもFedoraでもcanfepはパッケージになっていない(公式サイトで配布されているRPMパッケージは古すぎる)ので、使いたければ自分でコンパイルする必要がある。ビルドの手順は以下の通り。

$tar xvzf canfep-1.0.tar.gz
$cd canfep-1.0
$make
#make install

ビルド時の注意として、Cannaのヘッダファイルが必要なので、先にヘッダファイルをインストールをしておく必要がある。Debianの場合はlibcanna1g-devというパッケージに入っているので、

# apt-get install libcanna1g-dev

としておけばよい。

Fedoraの場合は

# yum install Canna-devel

を実行しておけばよい。

設定方法

canfepも特に設定は必要ない。

使用方法

skkfepと同じで、使い方に特に難しいところはない。単にコンソールで$canfepとして、canfepを起動するだけである。

screen-uim

公式サイトはhttp://uim.freedesktop.org/である。

特徴

screen-uimは野首貴嗣氏によって開発された、GNU screen 上でuimを用いてさまざまな言語入力環境を提供することを目的としたものである。uimとはなんぞやという事については、Part1のコラムとPart4のuimの解説を参照して欲しい。screen-uimに関しては、screen専用FEPのようなものだと思っていただければ、たぶん大きくは外れていない。screen-uimはuim 0.3.0から本家uimにマージされているのだが、ここでは話の構成上、コンソール用のものとして単独の項目を用意した。

なお、screen-uimは現在のところuim-skkしか使えない。

インストール

Debianの場合、

# apt-get install screen-uim

で導入は完了する。Fedoraの場合、原稿執筆時点ではscreen-uimがMergeされたバージョンのRPMパッケージは存在しないので、uimをソースからビルドする事になる。uimのビルドとインストールは一般的な./configure;make;make install式である。

$ cd ダウンロードしてきたディレクトリ
$ tar xvjf uim-0.3.2.tar.gz (原稿執筆時点での最新版)
$ cd skktools-1.1
$ ./configure
$ make
# make install

ただ、発売される頃には新しいRPMが出ているような予感もするので、ソースからインストールする前にまずは最新版のRPMが出ていないかどうかを確認しておいた方が良い。

設定方法

screen-uimには特に設定は存在しない。

使用方法

GNU screenを起動するさいに、$screen -c /etc/screen-uim/screenrc-uimというオプションをつけて起動すると、screen-uimが使用される。キーバインドは通常のuim-skkと同じである。screenrc-uimは環境によっては/usr/local/etc/screenrc-uimあたりにあるかもしれない。

使用例

本家SKKに準じる。

まとめ

まず、Emacs用のクライアントは非常に充実している。使用環境はEmacsに限定されてしまうものの、現存する変換エンジンを全て使用可能である。Emacsでさえ日本語が入力ができればそれでいいや、という人は非常に選択肢が広い。

それ以外の環境となると、選択肢は急に狭くなってくる。viで日本語が入力できればそれでいいという場合ならばまだ選択肢はある。今回紹介したjvimや、今回は紹介しなかったがvim6用のim_customというvimをCanna,SKK,POBoxに対応させるためのパッチが存在する。

コンソール全般で日本語が使いたいという場合の選択肢は、不満が残るものだ。今回紹介したskkfep、canfep、screen-uimはどれもこれもメンテナンスされていない。(他のソフトウェアはもっと長い事放置されている。)身も蓋もない結論になってしまうのだが、コンソール全般で日本語が使いたい場合はX Window System上のターミナルエミュレータからXIMなどの力を借りて日本語入力を行うのが一番お手軽で良いのではないだろうか。