	skkinput 利用の手引き ( Version 3.0 )

1. skkinput とは
2. skkinput のインストール方法
3. skkinput の利用方法
4. 判明しているバグ,改良予定など
5. その他
6. 謝辞

1. skkinput とは
----------------

1.1 skkinput とは
-----------------

skkinput は、kinput protocol/kinput2 protocol/Ximp Protocol/X Input
Method(X11R6標準)を用いた X Window System 上で動作する日本語入力のた
めのアプリケーションです。

skkinput は、SKK に付属している skkserv と BSD 系 UNIX のソケットを利
用してかな漢字変換を行います。skkserv が利用できない場合にローカル辞書
だけを用いて日本語入力が可能です。ただし、skkserv を起こしに行く機能は
サポートされておりません。

1.2 skkinput によるかな漢字変換
-------------------------------

skkinput は、

(1) 内部に登録されている変換キーとその変換結果を検索。
(2) skkinput の参照・更新する局所辞書(*1)を検索。
    (デフォルト: "~/.skkinput-jisyo")
(3) SKK によって更新される局所辞書(*2)を検索。
    (デフォルト: "~/.skk-jisyo")
(4) skkserv との通信によって得られる変換結果。

の順に変換動作を行います。skkserv と通信できなかった場合には、(4) の
動作は行われません。また、skkserv を active にし直すことは行いません。

(*1) この局所辞書を以下 skkinput ユーザ辞書と呼びます。
(*2) この局所辞書を以下 skk ユーザ辞書と呼びます。

skkinput 上で新に登録された変換キーと変換結果は、skkinput ユーザ辞書に
記録されます。skk ユーザ辞書ではなく、skkinput ユーザ辞書に変換結果を
書き込む理由は、「skk ユーザ辞書に書き込んだ場合、Mule + skk の辞書の
更新と skkinput による辞書の更新が衝突する可能性があるから」です。

skkinput ユーザ辞書及び skk ユーザ辞書の両方を検索する意図は次の通りで
す。
「skk ユーザ辞書を参照せずに skkinput ユーザ辞書だけを参照するというこ
  とにすると、既に色々とカスタマイズされている SKK (+Mule)のユーザ辞書
  を参照しないということですから、色々と不便でしょう」

この (2),(3) に用いる辞書はオプションによって修正することが可能です(後
述)。

また、skkinput ユーザ辞書を更新する時にバックアップをきちんととるよう
になっています。
デフォルトは "~/.skkinput-jisyo.BAK" です。dot.skkinput の設定で変更す
ることができます。

1.3 skkinput-3.x の 2.x との違い
--------------------------------

skkinput-3.x は emacs-lisp もどき interpreter です。変換エンジンは
skk8.6 の skk.el を修正したものをそのまま利用しています。
細かな動作がemacs とは異なるために、また実装されている function が 
emacs の持つfunction に及ばないために、そのままには利用することが
できません。
例えば、process control function は skkinput-3.x にはありません。

skkinput-3.x のカスタマイズは skk8.6 のカスタマイズとほぼ同様に行う
ことができます。


2. skkinput のインストール方法
------------------------------

skkinput のインストールは、X Window System の他のアプリケーションと同
様に xmkmf を用いて行います。

  (a) xmkmf -a と打つ。

  (b) make と打つ。

  で、skkinput は作成されます。インストールする時には、

  (c) make install と打つ。

です。Default_FontSet の指定などはまだ Imakefile では書けません。直に
追加する予定です。


3. skkinput の利用方法
-----------------------

3.1 skkinput 取り敢えず使ってみよう
-----------------------------------

  skkinput を取り敢えずは使ってみましょう。その際に注意すべき点は
skkserver だけです。skkserv が起きていないと、SKK ユーザ辞書及び
skkinput ユーザ辞書しか見ませんので。skkserver の指定方法は幾つかあり
ますが、ここでは "-h" オプションを使いましょう。(オプションの詳細は 
3.2 を参照して下さい)

    skkinput -server skkserver &

と打って、skkinput を起こしましょう。

  次は、skkinput を使って実際に日本語入力をしてみましょう。手近な変換
クライアントの例として kterm を取り上げることにします。

  kterm にマウスのフォーカスを合わせて、シフトキーを押しながらスペース
キーを押してみましょう。カーソルの下(場合によっては上)に "かな--" とい
うのが現われましたね。これが、その kterm に対して skkinput が日本語入力
の処理を行っているというしるしです。もし現われないとしたら…

kterm*VT100.translations: #override \
	Shift	<Key>space:	begin-conversion()

の二行が X のリソースファイルの中にありますか？ X のリソースファイルの
デフォルトは "~/.Xdefaults" です(参照：man X)。そこにこの二行を加えた後
に…

  xrdb ~/.Xdefaults

としてみて下さい。これで如何でしょうか？ また、kterm-6.2.0 を使われて
いるのでしたら、VT Options の Open Input Method は外しておいて下さい。
ここでは Kinput2 Protocol を用いて日本語入力を行おうと意図していますの
で。

  "かな--" が現われている状態で、"aiueo" と入力してみましょう。tcsh な
どの上ではきちんとは動かないですが(漢字コードを tcsh が解釈できるよう
にしてあれば大丈夫です。tcsh 漢字パッチを参照)、kemacs などの上では
"あいうえお" と入力された筈です。

  (例えば)kemacs に "あいうえお" と表示されずに化けるようでしたら、漢
字コードの問題です。まず、kemacs がどの漢字コードが入力されることを期
待しているか調べてみましょう。これは簡単です。

  == JIS-NEW-ASCII == とあれば、JIS
  == UJIS ==          とあれば、EUC
  == SJIS ==          とあれば、MS 漢字コード(シフトJIS)

  kterm の VT Options のメニューを開いて下さい。
  Japanese EUC Mode にチェックが入っていれば、kterm は EUC 漢字コード
に直してから kemacs へと日本語を送っているのです。Shift-JIS Mode なら
ば、SJIS に直してから送っています。これらにチェックが入っていなければ、
JIS 漢字コードになります。

  従って、JIS-NEW-ASCII ならば Japanese EUC Mode も Shift-JIS Mode も
外して下さい。UJIS ならば Japanese EUC Mode に、SJIS ならば Shift-JIS
Mode にして下さい。

  如何でしょうか？ 今度は日本語が正しく入力できましたでしょうか？
  漢字コードの問題は kemacs でなくても ng でも vi でもあると思います。
日本語が化けて入力される場合には、先程の方法を一度試してみられては如何
でしょうか？

  先程、少し登場しましたが、tcsh へ日本語を入力したい場合には tcsh に
日本語化パッチを当てたものが必要になります。tcsh-6.07.02.kanji.patch6
(榊原 善之様の patch です)というものが fj.sources にポストされています。
このパッチを当てて tcsh を作り直して下さい。その後、

    set dspkanji euc (もしく sjis)
  
としてみて下さい。これでも日本語が通らないようでしたら、

    - sttyの設定
     ・istripは設定しない (-istrip)
     ・使用するビット数は8 (cs8)
     ・パリティーは使用しない (-parenb)
  
を見てみて下さい。端末の漢字コード(kterm等の)にも注意して下さい。

tcsh ではなくて bash の場合には次のように設定を行います。~/.inputrc に

    set meta-flag on
    set convert-meta off
    set output-meta on

これで kterm のシェルプロンプトへ日本語入力が可能になります。(*4)
bash の日本語化パッチ(*5)を用いれば、上記の指定をしなくても日本語は通
りますし、行編集も行えます。bash の日本語パッチには、1.14.1 をベースに
したものと 2.0x に適用したものがあります。

  さて、この "かな--" に表わされている入力モードが「ローマ字ひらがな入
力モード」です。この他にも「ローマ字カタカナ入力モード」「アスキー入力
モード」「全角英字入力モード」があります。ローマ字ひらがな入力モードで
は、ローマ字を入力すれば対応する平仮名を入力したことになります。

例えば、ローマ字平仮名入力モードで、

         kurenai wakaba

とタイプすれば、

        くれない わかば

と対応するローマ字が入力されます。

次に "q" を押してみましょう。"かな--" から "カナ--" になりましたね？
「ローマ字カタカナ入力モード」に切り替わりました。"カナ--" の "カナ" 
の部分が 「ローマ字カタカナモード」を表わしています。

今度は "l" を押してみましょう。"カナ--" から "SKK--" になりました。
このモードが「アスキー入力モード」です。アスキー入力モードでは、ほとん
どのキーが変換クライアント(例えば kterm, xcalendar など)へとそのままの
形で送られるようになっています。アスキー入力モードのまま、もとの変換ク
ライアントの操作をほとんど行うことが可能です。その代わり、kterm でアス
キー入力モードを使う場合には、allowSendEvents を TRUE にしておいて下さ
い。(*6)
kterm の allowSendEvents を TRUE にするには、フォーカスを kterm に合
わせてから、コントロールキーを押しながらマウスの左クリックをした時に出
るメニューで、"Allow SendEvents" という項目にチェックを入れることで行
います。また、X Resource に、

     KTerm*allowSendEvents: TRUE

という一行を加えることによってデフォルトで allowSendEvents が TRUE に
なるように設定できます。X Resource は通常ホームディレクトリの下に
".Xdefaults" という名前で存在します。

さて、これらのモードの切り替えは、次のようになっています。

       キー入力         モード遷移
       --------------------------------------------------------------
       q               「ローマ字ひらがな入力モード」から「ローマ字カ
                       タカナ入力モード」へ遷移。もしくは、その逆。
       l               「ローマ字ひらがな入力モード」から「アスキー入
                        力モード」へ遷移。
       L               「ローマ字ひらがな入力モード」から「全角英字入
                        力モード」へ遷移。
       C-j             「アスキー入力モード」もしくは「全角英字入力
                        モード」から「ローマ字ひらがな入力モード」も
                        しくは「ローマ字カタカナ入力モード」へ遷移。

変換モードは、「平仮名確定入力モード」「▽モード」「▼モード」のいずれ
かです。

▽モードは、漢字変換を行いたい文字列を入力するモードに当たります。平仮
名確定入力モードから▽モードへと遷移する方法は幾つか存在しますが、通常
の仮名漢字入力においては 大文字でローマ字入力を開始することによって行
われます。例えば、

              Wakaba

とタイプすれば、 

              ▽わかば
と表示されます。"▽" は▽モードであることと変換開始点が "▽" の表示さ
れている位置であることを示しています。

誤って▽モードに入ってしまった場合には、「C-j」「C-g」のいずれかのキー
を入力することによって抜けることができます。
「C-j」をタイプした場合には確定動作が行われ、"わかば"が得られます。
「C-g」をタイプした場合には、"▽わかば"全体が消去されます。いずれの場
合も平仮名確定入力モードへと遷移します。

▼モードは、漢字変換を行いたい文字列は既に確定しており、この文字列の漢
字変換を行います。▽モードから▼モードへと遷移する方法は２通りあります。

最初の方法は「スペースキーを入力する」です。スペースキーを入力した場合、
"▽"からカーソル位置までの文字列が変換を行いたい文字列として選択されま
す。この時、"▽"は "▼"で置き換えられ、▼モードへ移動したことが分かり
ます。また、同時に選択された文字列で辞書を検索し、最初にヒットした候補
を表示します。例えば、辞書に「わかば」について

              わかば /若葉/紅 若葉/

のように登録されていたとしますと、"若葉"が最初の候補 になり、画面には
              ▼若葉
と表示されます。これが求める候補でしたら、ここで"C-j"をタイプすれば変
換が確定します。この時"▼"も画面から消え、変換が確定し平仮名確定入力モー
ドへと戻ったことが知らされます。
求めるものが "若葉"でなければ、スペースキーを入力することにより次の候
補を検索することができます。この場合画面には
              ▼紅 若葉
と表示されます。先の候補に戻したい時には、"x"を入力することにより、再
び"若葉"を得ることができます。また、この状態で "X"を入力すると、候補"
紅 若葉"を辞書からパージすることが可能です。

候補が５つ以上存在する時は、５番目以降の候補は、７つずつまとめてミニバッ
ファに表示されます。

   A:候補1 S:候補2 D:候補3 F:候補4 J:候補5 K:候補6 L:候補7

という具合です。

次の方法は「大文字で始まるローマ字を入力する(送り仮名の最初の仮名を大
文字で始める)」です。この操作により送り仮名変換を行うことができます。
例えば、
       ちょっぴりどじでとろいけど、とっても心優しい娘なんですよ。
と入力したい場合、「心優し」を入力するに は "KokoroyasaShi" とタイプす
れば良いです。

基本的なローマ字仮名入力は以上で行えます。より詳細な動作が知りたい場合
には、skk の info もしくは skk のチュートリアルを参照して下さい。
skkinput のキーアサインについては、3.4 を参照して下さい。

Shift + Space で skkinput による日本語入力を終わらせることができます。
不要になれば、Shift + Space で "かな--" を消すのが良いでしょう。
また、挙動が怪しいなと思えば Shift + Space を二回叩くことでリセットで
きます。御利用下さい。

次に xcalendar に skkinput を用いて日本語入力する場合です。X Input
Method というプロトコルを用います。この時に注意すべきは、

  環境変数 XMODIFIERS (日本語入力サーバを指定する)
  X のリソース        (日本語入力サーバを指定する)
  環境変数 LANG       (日本語を用いることを指定する)

です。
  まず、日本語入力サーバが skkinput であることを xcalendar に教えなけ
ればなりません。その方法は、次の通りです。

  (1) 環境変数 XMODIFIERS に "@im= skkinput" という値を持たせる。

   sh 系なら、

         XMODIFIERS="@im= skkinput" ; export XMODIFIERS

   csh 系なら、

         setenv XMODIFIERS "@im= skkinput"

   この方法ではウィンドウスタイル(後述)を指定することができません。

  (2) "~/.Xdefaults" に

        XCalendar*inputMethod: skkinput
        XCalendar*preeditType: OverTheSpot

  と記述する。その後、必要ならば xrdb でリソースファイルを再度読み込ま
せる。

  この状態で環境変数 LANG を設定して、xcalendar を起こせば day editor 
で skkinput を用いて日本語入力が可能になる筈です。

  環境変数 LANG ですが、ja_JP.ujis から ja_JP.EUC 及び ja まで試してみ
ましょう。私の試した範囲では、

  FreeBSD-2.2.x では ja_JP.EUC,
  Solaris-2.5.1, 2.6 では ja 

でした。まずは、ja_JP.EUC と ja_JP.ujis で試してみて下さい。環境変数 
LANG に何が設定可能であるかは、処理系(OS)によって異なるようです。
FreeBSD-2.2.x には、

  /usr/share/locale/ja_JP.EUC/LC_CTYPE

という locale の設定ファイルが存在しますから、ja_JP.EUC が設定可能なわ
けです。(問題は ja_JP.EUC と書いてあっても、変換クライアントや変換サー
バが ja_JP.EUC を通すかどうか…)

  xcalendar 以外の日本語化された X Window System のアプリケーションに 
X Input Method で日本語を入力したい場合には同様の操作で何とかなると思
います。

  最後に Netscape に日本語入力する方法について書きます。Ximp プロトコ
ルを用いた日本語入力の例に相当します。

  Ximp プロトコルの場合も XIM プロトコル同様に、

  環境変数 XMODIFIERS (日本語入力サーバを指定する)
  X のリソース        (日本語入力サーバを指定する)
  環境変数 LANG       (日本語を用いることを指定する)

を指定することが必要です。設定すべき値も XIM プロトコルの場合と同様で
す。すなわち、

  Netscape*inputMethod: skkinput
  Netscape*preeditType: Root

  setenv XMODIFIERS "@im= skkinput" もしくは、
  XMODIFIERS="@im= skkinput"; export XMODIFIERS

となります。preeditType は Root にしておいて下さい。OverTheSpot や 
OffTheSpot を指定することも可能な筈ですが…上手く動作しないというバグ
が発見されています。kinput2 でも発生しますが、環境によっては生じない
(しかし、その環境を入手することは叶わなかった)という全くわけの分からな
いバグのため対処できておりません。

  LANG に適切な値をセットして、

  netscape &

  とすれば、netscape の form に skkinput によって日本語入力が出来るよ
うになっている筈です。Solaris 2.5.1 では ja でした。

  環境変数 LANG が C 以外だと色々と副作用が発生しますので、

netscape:
#!/bin/sh
LANG=ja; export LANG
exec /usr/local/X11R6/bin/netscape -- $*

という shell script を用意しておくと良いかもしれません。

(*4) この設定方法は山縣あつし様から教えて戴きました。
(*5) この情報は千葉大学総合情報処理センターの山賀正人様から教えて戴き
     ました。
(*6) アスキー入力モードでは、極力 X EVENT を使って変換クライアントへと
     キー情報を送るようにしています。このモード以外では、スペースキー、
     アルファベットなどのキーは内部コードに変換されてから更に Compound
     Text に変換されてクライアントへと送られます。Compound Text でキー
     情報を送ると、例えば仮にクライアントがスペースキーに何らかの動作
     (例えば、emacs なら ミニバッファでのcompletion など)を割り当てて
     いた場合に、機能しないことになります。(Terminal で使っている場合
     には問題ありません)

3.1 skkinput のオプション
-------------------------

  skkinput の持つオプションの一覧は次の通りです。2.03 とは互換性のないもの
がかなりあります。

  ・-version もしくは -v ：
	version の表示です。

  ・-server <hostname>：
	skkserv の起動しているマシンの名前を入れて下さい。
	Imakefile で指定する以外に、この -server または環境変数 SKKSERVER
	によって skkserv の起動しているマシンを指定できます。

  ・-port <port_num> ：
	skkserv と TCP/IP でお話をするときに利用するポート番号を指定し
	ます。普通に SKK をインストールすると 1178 です。

  ・-config <config>：
	skkinput の起動時に参照する設定ファイルである init.el, skk.el の
	インストールパスを指定します。デフォルトは "/usr/X11R6/lib/skkinput"
	になります。

  ・-fontset <fontset> ：
	skkinput が利用するフォント集合を指定します。デフォルトでは 
	"-*-12--*-" になっています。
	X Resource でも指定できます。

  ・-fg <color>:
	skkinput の日本語入力窓の foreground color を指定します。これ
	は、X Resource でも指定できます。

  ・-bg <color>：
	skkinput の日本語入力窓の background color を指定します。
	foreground color と同じにすると何をやっているのか分からなくなっ
	て楽しいですので、止めましょう。これは、X Resource でも指定で
	きます。

  ・-bd <color>：
	skkinput の日本語入力窓の border color を指定します。これは、X
	Resource でも指定できます。

  ・-/+rv：
	skkinput の日本語入力窓を reverse video mode にするかどうかで
	す。X Resource でも指定できます。

  ・-/+kinput：
        Kinput/Kinput2 Protocol をサポートした変換サーバになるかどうか。
        デフォルトではサポートします。

  ・-/+xim：
        X11R6 標準の X Input Method をサポートした変換サーバになるかど
        うか。デフォルトではサポートします。

  ・-/+ximp:
        Ximp プロトコルをサポートした変換サーバになるかどうか。
        デフォルトではサポートします。


3.2 skkinput の用いる X Resource 一覧
-------------------------------------

Skkinput*fontSet	→ 参照：オプションの -fontset
Skkinput*foreground	→ 参照：オプションの -fg
Skkinput*background	→ 参照：オプションの -bg
Skkinput*borderColor	→ 参照：オプションの -bd
Skkinput*reverseVideo	→ 参照：オプションの -/+rv
Skkinput*xim.conversionStartKey
                        → X11R6 標準の X Input Method で変換サーバに
                           サービス開始を要求するキーの割り当てを行う。
  書式は、
    変換開始キーの列 := 変換開始キー (, 変換開始キーの列)
    変換開始キー     := '[' キー定義1 ']' | '"' キー定義2 '"'

    キー定義1        := modifier の定義1 | Xのキーシンボル名
    modifier の定義1 := "S-" | "L-" | "C-" | "M-"

    キーの定義2      := 文字列...

    例えば、Shift-Space 及び Alt-Kanji で変換を開始したい場合には、

      Skkinput*xim.conversionStartKeys: [S-space], [S-kp-space], [M-Kanji]

    Control-Backslash で変換を開始したい場合には、

      Skkinput*xim.conversionStartKeys: "\\C-\\\\"
      Skkinput*xim.conversionStartKeys: [C-backslash]

  のように書きます。右Alt, 左Alt のような区別は…できません。Modifier の
  部分は押されているか否かという判定しかしていないので、それが右によるも
  のか左によるものかを区別していないのです。

  Shift+Space がデフォルトになっています。

Skkinput*xim.supportedLocales
                        → X11R6 標準の X Input Method で変換サーバが
                           サービス要求を受け付ける locale を指定する。

細かい部分については付属の Skkinput.ad を参照して下さい。

3.3 skkinput のカスタマイズ
---------------------------

  skkinput は，デフォルトで "~/.skkinput.el" というファイルを起動時に
参照します。".skkinput.el" によって skkinput の動作をカスタマイズする
ことができます。設定例は "dot.skkinput" という名前でアーカイブの中に含
まれています。

  設定ファイルの記述方法が変わりましたので、".skkinput" から
".skkinput.el" に変更しています。2.x 系列との干渉を避けるためです。

3.4 skkinput の操作体系
-----------------------
  skkinput のキー操作体系は、skk8.6 + mule-2.3base19.28 を参考にしてい
ます。具体的なキーとその機能の関係は次の通りです。ここに書かれていない
キーについては、self-insert-command もしくは invalid-char が割当てられ
ています。

    キー            機能
    --------------------------------------------------------------
    A,B,C,D,E,F,G,  平仮名確定入力モードでは▽モードに遷移、見出し
    H,I,J,K,M,N,O,  語の入力を開始する。▽モードでは▼モードに遷移
    P,R,S,T,U,V,W,  送り仮名変換を開始する。▼モードでは現在の確定
    Y,Z             後▽モードに遷移、見出し語の入力を開始する。
    L               全角英字入力モードへと遷移する。
    Q               カーソル位置を見出し語の先頭とする▽モードに遷
                    移する。
    X               ▼モードで現在の候補を辞書から抹消する。
    a               ローマ字表現が "a" で終わる仮名の入力。
    i               ローマ字表現が "i" で終わる仮名の入力。
    u               ローマ字表現が "u" で終わる仮名の入力。
    e               ローマ字表現が "e" で終わる仮名の入力。
    o               ローマ字表現が "o" で終わる仮名の入力。
    b,c,d,f,g,h,j,  ▼モードでは変換中の候補を確定、平仮名確定入力
    k,m,n,p,r,s,t,  モードへ。▽モードでは入力中の見出し語はそのま
    v,w,y,z         ま平仮名確定入力モードへ。
    l               アスキー入力モードへ遷移。
    q               かなモードとカナモードの切り替え。
    $               カーソル位置のコードを表示。
    ","             読みの補完を行っている場合、一つ前の補完の候補
                    へと戻る。英字変換中には通常コンマが挿入される
    "."             読みの補完を行っている場合、一つ次の補完の候補
                    へと戻る。英字変換中には通常ピリオドが挿入され
                    る。
    /               平仮名確定モードならば英字変換のための見出し語
                    の入力を開始、▽モードへと遷移する。
    <,>,?           接尾辞、接頭辞の入力に用いる。
    @               今日の日付をカーソルの位置に挿入する。
    \               平仮名確定モードならば、コードまたはメニューに
                    よる文字の入力を行う。
    C-i             ▽モードならば読みの補完を開始する。
    C-j             英数字入力モードから仮名入力モードへ移る。
    C-q             英字変換モードで▽モードならば、全角変換を行う
    <SPC>           平仮名確定モードならば空白の挿入。▽モードなら
                    ば▼モードへ遷移し、変換を開始する。▼モードな
                    ら次候補を表示する。

    C-a             カーソルを行頭へ移動させる。
    C-b             カーソルを一文字左へ移動させる。
    C-c             プレフィクスキー。
    C-d             カーソル位置の文字を消去する。
    C-e             カーソルを行末へ移動させる。
    C-f             カーソルを一文字右へ移動させる。
    C-g             変換操作その他の操作のキャンセル。
    C-h             カーソルより一文字左の文字を消去する。
    C-k             カーソル位置から行末までをカットする。
    C-l             skkinput 窓の再描画を行う。
    C-m             改行と同時にクライアントに文字列を送信する。
    C-t             カーソル位置の文字とその左の文字を交換する。
    C-w             マーク位置からカーソル位置までの文字列をカットする。
    C-x             プレフィクスキー。
    C-y             カットバッファに登録されている文字列を貼り付ける。
    C-@             カーソル位置にマークを設定する。

    M               プレフィクスキー。
    M-b             1単語分カーソルを左へと移動させる。
    M-c             カーソル位置から1単語分キャピタライズする。
    M-f             1単語分カーソルを右へと移動させる。
    M-l             カーソル位置から1単語分小文字変換する。
    M-u             カーソル位置から1単語分大文字変換する。
    M-w             カーソル位置とマーク位置の間の文字列をカットバッファ
                    に取り込む。

    ↑              ヒストリを一つ前にたどる(一行入力モードのみ)
    →              カーソルを一文字右へ移動させる。
    ←              カーソルを一文字左へ移動させる。
    ↓              ヒストリを一つ後にたどる(一行入力モードのみ)

(注意・補足)
1.  辞書の SAVE 中に SIGKILL を送るのは止めて下さい。
    辞書の書き込みの途中で落ちます。結果、辞書は破壊されます。

# このキーバインドの説明は正しくありません。きちんと見直すつもり + 機能
# 追加するつもりです。


3.5 skkinput の動作
-------------------
  skkinput を OverTheSpot/OffTheSpot Window Style で起こした場合には、
カーソル位置に次のようなウィンドウが出ている筈です。

     --SKK:

  この左の３文字は、仮名モードか片仮名モードか全英モードか英数モードか
を表しています。

   仮名モードの場合：	「--かな」
   片仮名モードの場合：	「--カナ」
   全英モードの場合：	「--全英」
   英数モードの場合：	「--SKK:」
  
  となります。これらのモード間の移動は、デフォルトでは次のようになって
います。

   「仮名モード」        ←→( "q" )←→ 「片仮名モード」
   「仮名(片仮名)モード」→→( "l" )→→ 「英数モード」
   「仮名モード」        →→( "L" )→→ 「全英モード」
   「英数(全英)モード」  →→( "\C-j" )→「仮名(片仮名)モード」

この 「--SKK:」の部分は、mode-line-format をカスタマイズすることで、
修正(変更)可能です。
ただし、OverTheSpot/OnTheSpot/OffTheSpot では mode-line-format の2番目の
要素しか表示しないようになっています。


3.6 その他のカスタマイズについて
--------------------------------
(1) 変換終了キーの変更：

init.el の中を見ると、im-end-conversion というキー定義があるのですが、
これが変換終了キーを指します。

  (define-keymap im-local-map "\\C-\\\\" 'im-end-conversion)

とか .skkinput に書いておくと、例えば Control-Backslash で変換を終了す
ることができます。

  (define-keymap im-local-map [M-Kanji] 'im-end-conversion)

のような記法も通ります。上記は Alt-Kanji で変換終了の場合の例です。

(2) "oh" について：

もし、"ohhon'" と入力して "おっほん" と入力したいのでしたら、
 
   (setq skk-rom-kana-rule-list '(( "oh" "h" "" "" )))

のように .skkinput に記述すると良いでしょう。

(3) (times) について：

もし、▽7x3 と入力してから ▼21 を得たいのでしたら、.skkinput に次の行
を追加して下さい。

(defun times() (int-to-string (* (string-to-int (car j-num-list)) (string-to-int (car (cdr j-num-list))))))


4. 判明しているバグ,改良予定など
--------------------------------
(a)バグ
-------
またまだテスト中ですので、バグなのか仕様なのか、つくりこみが甘いだけな
のか、何ともややこしい状況です。

(b)バグレポート
---------------
  バグレポートや「こうしたら良いのじゃないですか？」という提案、patchな
どがございましたら、

  sakamoto@kuis.kyoto-u.ac.jp 又は PXG01715@niftyserve.or.jp

  にメールを御願い致します。力の及ぶ限り対応したいと考えております。後、
バグレポートを下さった方の御名前をドキュメントにのせて良いかどうか、バグ
レポートの際に書いて下さると有難いです。
  ただ、私の能力値が低いですので、すぐには御返事を書くことができないか
もしれません。その時は…申し訳ありません。

5. その他
---------

5.1 再配布、その他について
--------------------------
このプログラムは、free software です。GNU General Public License のも
とに、このプログラムを再配布したり改変したりしてもかまいません。

 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
  
 You should have received a copy of the GNU General Public License
 along with skkinput; see the file COPYING.  If not, write to
 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

5.2 動作確認を行った環境
------------------------
skkinput の動作確認を行った環境を書きます。

  ・FreeBSD-4.5R + gcc-2.7.2 + XFree86-4.2.0, Support XIM

6. 謝辞
-------

本プログラムの開発にあたっては、
skkの開発者である佐藤 雅彦様、中島 幹夫様およびcontributorの皆様方、
skkservの開発者である亀山 幸義様およびcontributorの皆様方、
pskkservの開発者である佐藤 正章様、中島 幹夫様およびcontributorの皆様方、
dbskkdの開発者である力武健次様およびcontributorの皆様方、
kinput2の開発者であるMakoto Ishisone様、
そしてskkの発展に貢献した利用者の皆様に敬意と感謝の意を表します。

取り敢えずのドキュメント、ほぼメモ書きレベル

