[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5. 便利な応用機能

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CA%D8%CD%F8%A4%CA%B1%FE%CD%D1%B5%A1%C7%BD"
"skk/便利な応用機能"へのコメント(無し)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.1 ファイル構成

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%D5%A5%A1%A5%A4%A5%EB%B9%BD%C0%AE"
"skk/ファイル構成"へのコメント(無し)

SKK の基本的な機能は、`skk.el' に収められています。一方、 DDSKK 14 で応用機能を提供するプログラムのほとんどは `skk.el' と は別のファイルに収めています。これらは、必要に応じオートロードするように 設計されています。各応用機能の概略と該当のファイル名について説明します。

また、DDSKK の変数は `skk-vars.el' に集約されています。 カスタマイズしたい場合などにこのファイルを見ると参考になるかもしれません。

`context-skk.el'

編集の文脈に応じて自動的に skk のモードを切り替えたり、SKK の各種設定を変 更する機能を提供します。

See 節 5.3.5 文脈に応じた自動モード切り替え.

`skk-abbrev.el'

SKK abbrev mode の機能を提供するプログラムを集めたファイル。

See 節 SKK abbrev mode.

`skk-act.el'

dvorak 配列での拡張ローマ字入力 "ACT" を SKK で使うための設定を提供しま す。

See 節 6.2 ACT.

`skk-annotation.el'

個人辞書に付けたアノテーション (注釈) を活用するプログラムを集めたファイ ル。

See 節 5.11 注釈 (アノテーション).

`skk-auto.el'

送り仮名の自動処理を行うプログラムを集めたファイル。

See 節 5.8.3 送り仮名の自動処理.

`skk-autoloads.el'

オートロードの設定を記述したファイル。XEmacs で DDSKK をパッケージとして インストールした場合は `auto-autoloads.el' というファイルがこれに相 当します。

`skk-azik.el'

拡張ローマ字入力 "AZIK" の設定を提供します。

See 節 6.1 AZIK.

`skk-bayesian.el'

SKK の学習機能のひとつで、ユーザの過去の入力から変換候補を予測します。

`skk-comp.el'

見出し語の補完を行うプログラムを集めたファイル。

See 節 5.4 補完.

`skk-cursor.el'

カーソルの色を制御するプログラムを集めたファイル。

See 節 5.14.3 入力モードを示すカーソル色に関する設定.

`skk-cus.el'
M-x customize-group による対話的な設定変更機能の簡易版を提供します。

See 節 5.2.3 Customize による設定変更.

`skk-dcomp.el'

skk-comp による補完を自動的に実行して見出し語入力を支援します。

See 節 5.4.3 動的補完.

`skk-develop.el'

バグレポートのメールバッファを用意するプログラムファイル。

`skk-dic.el'

SKK 辞書を Emacs Lisp プログラムとして用意できます。

`skk-e21.el'

GNU Emacs 21 以降の拡張機能を利用するプログラムを集めたファイル。 インジケータのカラー化や画像表示、ツールティップ利用など。

`skk-gadget.el'

プログラム実行変換を行うプログラムを集めたファイル。

See 節 5.5.7 プログラム実行変換.

`skk-hint.el'

SKK の変換候補が多いときにヒントを与えて絞りこむ機能を提供します。

See 節 5.5.2 候補の絞り込み.

`skk-isearch.el'

DDSKK を併用したインクリメンタル・サーチ機能を提供します。

See 節 5.17 I-search関連.

`skk-jisx0201.el'

いわゆる半角カナを利用する機能を提供します。

`skk-jisx0213.el'

JISX0213 文字コードを扱うプログラムです。

`skk-jisyo-edit-mode.el'

SKK 辞書を編集するためのメジャーモードを提供します。

`skk-kakasi.el'

KAKASI インターフェイスプログラムを集めたファイル。

See 節 5.3.3 領域の操作.

`skk-kanagaki.el'

キーボードのかな配列などに対応する枠組みを提供します。 現段階では旧 JIS 配列のかなキーボード、および NICOLA 規格の親指シフト配 列に対応しています。

See 節 6.4 かな入力と親指シフト.

`skk-kcode.el'

漢字コードまたはメニューによる文字入力を行うプログラムを集めたファイル。

See 節 5.12.1 漢字コードまたはメニューによる文字入力.

`skk-leim.el'

LEIM 関連プログラムファイル。DDSKK を Emacs の input method として利用で きるようにします。

`skk-look.el'

look インターフェイスプログラムを集めたファイル。

See 節 5.13.2 skk-look.

`skk-lookup.el'

Lookup で検索できる辞書を使って単語の候補を出力するプログラム。

See 節 5.13.1 skk-lookup.

`skk-macs.el'

他のファイルで共通して使用するマクロなどを中心にまとめたファイル。

`skk-num.el'

数値変換を行うプログラムを集めたファイル。

See 節 5.5.4 数値変換.

`skk-obsolete.el'

`~/.emacs' や `~/.skk' などのユーザ設定ファイル中の古い設定 (変 数、関数名など)の修正支援プログラム。

`skk-server-completion.el'

拡張された辞書サーバによる見出し語補完機能を利用できます。

`skk-server.el'

辞書サーバと通信して変換する機能を提供します。

See 節 5.10.4 サーバ関連.

`skk-setup.el'

自動的に個人設定を行うためのファイル。

`skk-sticky.el'

変換開始位置および送り開始位置の指定方法を変更可能にする。

See 節 5.6.9 変換位置の指定方法.

`skk-study.el'

直前に確定したいくつかの語との関連性を確認し、候補順を操作する学習効果 を提供するプログラム。

See 節 5.9.1 変換の学習.

`skk-tankan.el'

SKK を使って単漢字変換を行うプログラムです。

See 節 5.5.1 単漢字変換.

`skk-tut.el'

SKK チュートリアルプログラム。

See 節 4.5 チュートリアル.

`skk-tutcode.el'

SKK で TUT-code 入力を実現します。

See 節 6.3 TUT-code.

`skk-version.el'

DDSKK のバージョン情報を提供するプログラムファイル。

`skk-viper.el'

VIPER インターフェイスプログラムを集めたファイル。

See 節 5.16 VIP/VIPERとの併用.

`skk-xemacs.el'

XEmacs の拡張機能を利用するプログラムを集めたファイル。 インジケータのカラー化や画像表示、ツールティップ利用など。

なお、Elibより `queue-m.el' ファイルを収録しています。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.2 ユーザオプションの設定方法

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%E6%A1%BC%A5%B6%A5%AA%A5%D7%A5%B7%A5%E7%A5%F3%A4%CE%C0%DF%C4%EA%CA%FD%CB%A1"
"skk/ユーザオプションの設定方法"へのコメント(無し)

DDSKK のカスタマイズは、`~/.emacs' あるいは `~/.skk' に記述し ます。また、各ファイルの提供するフックも利用します。上記のファイルやフッ クを利用した設定がいつ有効になるのか、という点についてここで説明します (23)

5.2.1 設定ファイル   
5.2.2 フック   
5.2.3 Customize による設定変更    このマニュアルには無い変数も設定できます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.2.1 設定ファイル

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C0%DF%C4%EA%A5%D5%A5%A1%A5%A4%A5%EB"
"skk/設定ファイル"へのコメント(無し)

`~/.emacs'

Emacs を起動したときに一度だけ読みこまれます。

See 節 `.emacs' in

GNU Emacs Manual
.

`~/.skk'

DDSKK を起動した最初の一度だけ読みこまれます。ファイル名の既定値は、OS の種類により異なりますが、実際は Emacs の関数 convert-standard-filename により加工されます。 `~/.skk' のファイル名は変数 skk-init-file で変更することがで きます。また、DDSKK にはこのファイルを自動的にバイトコンパイルする機能が あります。

See 節 5.2.1.1 skk-init-fileの自動コンパイル.

ユーザ変数: skk-user-directory
DDSKK は、`~/.skk' や `~/.skk-jisyo' といった複数のファイルを 使用します。これらのファイルをひとつのディレクトリにまとめて置きたい場合 は、変数 skk-user-directory にそのディレクトリ名を設定します。

この変数のデフォルトは nil です。この変数を設定する場合 は `~/.emacs' で行ってください。DDSKK 起動時 に skk-user-directory が指すディレクトリが存在しない場合は、自動 的に作られます。

 
(setq skk-user-directory "~/.ddskk")

この変数を設定した場合(例えば上記 "~/.ddskk")、以下に挙げる各変 数のデフォルト値が変更されます。

 
影響を受ける変数       デフォルト値      変更後のデフォルト値
skk-init-file          ~/.skk            ~/.ddskk/init
skk-jisyo              ~/.skk-jisyo      ~/.ddskk/jisyo
skk-backup-jisyo       ~/.skk-jisyo.BAK  ~/.ddskk/jisyo.bak
skk-emacs-id-file      ~/.skk-emacs-id   ~/.ddskk/emacs-id
skk-record-file        ~/.skk-record     ~/.ddskk/record
skk-study-file         ~/.skk-study      ~/.ddskk/study
skk-study-backup-file  ~/.skk-study.BAK  ~/.ddskk/study.bak

なお、skk-user-directory を設定した場合でも、各変数を個別に設定し ている場合はその個別の設定が優先されます。

5.2.1.1 skk-init-fileの自動コンパイル   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.2.1.1 skk-init-fileの自動コンパイル

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=skk%2Dinit%2Dfile%A4%CE%BC%AB%C6%B0%A5%B3%A5%F3%A5%D1%A5%A4%A5%EB"
"skk/skk-init-fileの自動コンパイル"へのコメント(無し)

ユーザ変数: skk-byte-compile-init-file

この変数の値が non-nil であれば、DDSKK の起動時に DDSKK の設定ファ イル (標準では `~/.skk') を必要に応じてバイトコンパイルします。

この変数の値が nil であれば、DDSKK の設定ファイルをバイトコンパイ ルしたファイルを消去します。

この機能を有効にしたい場合は、`~/.emacs' に

 
(setq skk-byte-compile-init-file t)

と記述します。 (24)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.2.2 フック

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%D5%A5%C3%A5%AF"
"skk/フック"へのコメント(無し)

skk-mode-hook

C-x C-j と入力して SKK モードに入る度に呼ばれます。主にバッファロー カルの設定などを行います。

skk-auto-fill-mode-hook

C-x j と入力してオートフィルモード付きで SKK モードに入る度に呼ば れます。主にバッファローカルの設定などを行います。

skk-load-hook

`skk.el' の読みこみを完了した時点で呼ばれます。`~/.skk' は SKK モードを起動しなければ読みこまれないのに対し、このフックは、 `skk.el' を読みこんだら SKK モードを起動しなくとも呼ばれます。

skk-auto-load-hook
skk-comp-load-hook
skk-gadget-load-hook
skk-kakasi-load-hook
skk-kcode-load-hook
skk-num-load-hook
skk-server-load-hook

`skk-auto.el', `skk-comp.el', `skk-gadget.el', `skk-kakasi.el', `skk-kcode.el', `skk-num.el', `skk-server.el' の各ファイルの読みこみが完了し た直後に呼ばれるフック。

load-hook が提供されていないプログラムであっても、ロード後に何らか の設定を行いたい場合は、関数 eval-after-load を使用します。例え ば、

 
(eval-after-load "skk-look"
  '(
    ...
    ))

のように記述します。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.2.3 Customize による設定変更

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=Customize+%A4%CB%A4%E8%A4%EB%C0%DF%C4%EA%CA%D1%B9%B9"
"skk/Customizeによる設定変更"へのコメント(無し)

SKK の設定は、Emacs 標準の Customize 機能を使って行うこともできます。 ただし、 Customize での設定は `~/.emacs' での設定と同様、 `~/.skk' での設定により上書きされますので注意してください。

M-x customize-group により、skk の設定を対話的に変更することができ ます。

M-x customize-group を実行すると、ミニバッファに "Customize group" とプロンプトが表示されます。ここで "skk" と答えると、SKK グループの画 面となります。

skk で設定できる変数の中には、まだこのマニュアルで記述されていないものも あります。 Customize を使うと、それらについても知ることができます。

あるいは、モードラインで SKK インジケータを右 (第 3 ボタン) クリックして表示 されるメニューから "SKKをカスタマイズ" を選んでも同じ画面となります。

カスタマイズの使いかたは以下を参照してください。

 
See 節 `Easy Customization' in 
GNU Emacs Manual
.

M-x customize-group の設定が複雑すぎると感じるユーザのために、簡易 版として M-x skk-customize を用意しています。これは SKK グループの ユーザオプションのうち、よく使うものだけ抜粋して設定できるようにしたもの です。

これは、モードラインで SKK インジケータを右 (第 3 ボタン) クリックして表示 されるメニューから "SKKをカスタマイズ (簡易版)" を選んで呼び出すことも できます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.3 カタカナ、英字入力の便法

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%AB%A5%BF%A5%AB%A5%CA%A1%A2%B1%D1%BB%FA%C6%FE%CE%CF%A4%CE%CA%D8%CB%A1"
"skk/カタカナ、英字入力の便法"へのコメント(無し)

この節では、カタカナや全英文字を入力するための、便利な方法を説明します。 単純に各モードを用いる方法については前述しました。 (see 節 カナモード、全英モード)

5.3.1 かなモードからカタカナを入力   
5.3.2 全英文字の入力   
5.3.3 領域の操作   
5.3.4 カタカナの見出し語   
5.3.5 文脈に応じた自動モード切り替え    プログラムでは、コメントの中だけ skk



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.3.1 かなモードからカタカナを入力

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A4%AB%A4%CA%A5%E2%A1%BC%A5%C9%A4%AB%A4%E9%A5%AB%A5%BF%A5%AB%A5%CA%A4%F2%C6%FE%CE%CF"
"skk/かなモードからカタカナを入力"へのコメント(無し)

まず、かなモードに入ります。Q キーで一旦▽モードにして何かひらがなを入力し、 最後に q をタイプすると、カタカナに変換され確定されます。

実際には、ひらがな以外からも変換できます。以下のようになります。

細かく言えば、`' とポイント間の文字列の 種類(25) を キーとして変換が行われます。 かなモード、カナモード、どちらでも同じです。

このような変換を、トグル変換と呼びます。以下はトグル変換の例です。

 
K a t a k a n a

------ Buffer: foo ------
▽かたかな-!-
------ Buffer: foo ------

q

------ Buffer: foo ------
カタカナ-!-
------ Buffer: foo ------

このトグル変換を上手く利用することにより、かなモードのまま一時的にカタカ ナを入力したり、またその逆を行うことができます。こうすると、例えばひらが な/カタカナ混じり文を書くときに、その都度 q キーを押して入力モー ドを切り換える必要がありません。

全英文字の入力には、次節の方法を用いるのが簡単でしょう。 (see 節 5.3.2 全英文字の入力) (26)

トグル変換は、領域を対象としたコマンドによって行うこともできます。 See 節 5.3.3 領域の操作



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.3.2 全英文字の入力

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C1%B4%B1%D1%CA%B8%BB%FA%A4%CE%C6%FE%CE%CF"
"skk/全英文字の入力"へのコメント(無し)

まず、かなモードに入ります。次に、/ を入力すると、SKK abbrev モー ドに入ります。これにより、アルファベット (アスキー文字) を入力できます。 なお、skk abbrev モードでは、

`is' => `インクリメンタル・サーチ'

のような変換を行うことができます。他の変換と同様、SPC を押すと変換モードに 入ってしまいますので、 SKK abbrev モードからアスキー文字を入力するのは、 一語のみの場合以外は不便です。 (see 節 5.5.5 アスキー文字を見出し語とした変換)

かなモードから、全角アルファベットを入力することもできます。上述のように アスキー文字を入力し、最後に C-q (27)を入力することで、`'マー クから C-q を入力した位置までの文字列が全角アルファベットに変換さ れ確定されます。

 
/ f i l e

------ Buffer: foo ------
▽file-!-
------ Buffer: foo ------

C-q

------ Buffer: foo ------
file-!-
------ Buffer: foo ------

なお、この変換を行うために、

 
file /file/

のような辞書エントリを持つ必要はありません。なぜなら、辞書を参照せず、ア スキー文字を 1 文字づつ全英文字に変換しているからです。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.3.3 領域の操作

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CE%CE%B0%E8%A4%CE%C1%E0%BA%EE"
"skk/領域の操作"へのコメント(無し)

以下のコマンドを M-x により呼ぶことで領域一括変換を行うことがで きます (28)

M-x skk-hiragana-region

カタカナをひらがなへ変換。

M-x skk-katakana-region

ひらがなをカタカナへ変換。

M-x skk-latin-region

全英文字をアスキー文字へ変換。

M-x skk-jisx0208-latin-region

アスキー文字を全英文字へ変換。

漢字から読みを求める、以下に紹介するコマンドについては、外部プログラム KAKASI (29) に依存しています。 KAKASI がインストールされていなければ使用することができません。

M-x skk-gyakubiki-region

漢字をひらがなへ変換。具体的な変換例をあげると、

 
``漢字をひらがなへ変換。''==>``かんじをひらがなへへんかん。''

のようになります。引数を渡して、

C-u M-x skk-gyakubiki-region

のようにすると、複数の候補がある場合に、`{}' で囲って表示します。例え ば

 
``中島''==>``{なかしま|なかじま}''

のようになります。

送り仮名がある語は、送り仮名まで含めて領域に指定します (さもないと誤変換 の原因となります)。 例えば、`五月蝿い' について、送り仮名 `' を含めずにこのコマンドを実行すると、`ごがつはえ' に変換されてしまい ます。

M-x skk-gyakubiki-katakana-region

漢字をカタカナへ変換。

引数を渡して、C-u M-x skk-gyakubiki-katakana-region のようにすると、 複数の候補がある場合に、`{}' で囲って表示します。

M-x skk-hurigana-region

漢字にふりがなを付ける。例えば、

 
``漢字の脇に''==>``漢字[かんじ]の脇[わき]に''

のようになります。引数を渡して C-u M-x skk-hurigana-region のよう にすると、複数の候補がある場合に、`{}' で囲って表示します。

M-x skk-hurigana-katakana-region

漢字にカタカナのふりがなを付ける。

引数を渡して、C-u M-x skk-hurigana-katakana-region のようにすると、 複数の候補がある場合に、`{}' で囲って表示します。

M-x skk-romaji-region

漢字、ひらがな、カタカナをローマ字へ、全英文字をアスキー文字へ変換。標準 では、ローマ字への変換様式はヘボン式です。例えば、

 
``し'' ==> ``shi''

となります。変数 skk-romaji-*-by-hepburn の値を nil に設 定すると、訓令式を用います。例えば、

 
``し'' ==> ``si''

のようになります (30)

以下のコマンドは、領域の文字列を置き換える代わりに、変換結果をエコーエ リアに表示します。

ユーザ変数: skk-gyakubiki-jisyo-list

関数 skk-gyakubiki-region はコマンド kakasi を呼び出しています。 kakasi には漢字をひらがなへ変換する機能があり、この変換には環境変数 KANWADICTPATH で指定されている辞書を用いています。

変数 skk-gyakubiki-jisyo-list を設定することにより kakasi へ与え る辞書を任意に追加することができます。 以下のように個人辞書 skk-jisyo を指定することにより、辞書登録モー ドで登録したばかりの単語も kakasi による逆引き変換の対象とすることができ ます。

 
(setq skk-gyakubiki-jisyo-list (list skk-jisyo))



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.3.4 カタカナの見出し語

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%AB%A5%BF%A5%AB%A5%CA%A4%CE%B8%AB%BD%D0%A4%B7%B8%EC"
"skk/カタカナの見出し語"へのコメント(無し)

q によりかなモード、カナモードを度々切り替えて入力を続けていると、 カナモードで誤って▼モードに入ってしまうことがあります。そのため、カナ モードで▼モードに入った場合、まず見出し語をひらがなに変換してから、辞 書の検索に入るよう設計されています。また、この場合の送りあり変換での送 り仮名は、カタカナになります。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.3.5 文脈に応じた自動モード切り替え

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CA%B8%CC%AE%A4%CB%B1%FE%A4%B8%A4%BF%BC%AB%C6%B0%A5%E2%A1%BC%A5%C9%C0%DA%A4%EA%C2%D8%A4%A8"
"skk/文脈に応じた自動モード切り替え"へのコメント(無し)

`context-skk.el' は、編集の文脈に応じて自動的に skk のモードをアスキーモー ドに切り替える等の機能を提供します。

`context-skk.el' をロードするには、`~/.emacs' に

 
(add-hook 'skk-load-hook
          (lambda ()
            (require 'context-skk)))

と書いてください。

あるプログラミング言語のプログラムを書いているとき、日本語入力の必要があ るのは一般に、そのプログラミング言語の文字列中かコメント中に限られます。 文字列・コメントの「外」を編集するときは、多くの場合日本語入力は必要あり ません。 たとえば emacs lisp では、「"〜"」や「;; 〜」といった個所でだけ日本語 入力が必要となります。

現在の文字列・コメントの「外」で編集開始と同時に(skk がオンであれば) skk の入力モードをアスキーモードに切り替えます。 エコーエリアに

 
-------------------- Echo Area --------------------
[context-skk] 日本語入力 off
-------------------- Echo Area --------------------

と表示され、アスキーモードに切り替わったことが分かります。 これにより、文字列・コメントの「外」での編集を開始するにあたって、日本語 入力が on になっていたために発生する入力誤りとその修正操作を回避すること ができます。

上記の機能は context-skk-mode というマイナーモードとして実装されており M-x context-skk-mode でオン/オフを制御できます。 オンの場合、モードラインのメジャーモード名の隣に「;▽」と表示されます。

context-skk にて「プログラミングモード」とみなすメジャーモードは、変数 context-skk-programming-mode で定義されています。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.4 補完

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CA%E4%B4%B0"
"skk/補完"へのコメント(無し)

読みの前半だけを入力して、残りは TAB を押せば自動的に補ってくれる、 これが補完です。 Emacs ユーザにはおなじみの機能が、 DDSKK でも使えます。

5.4.1 読みの補完    「かか」 + Tab -> 「かかみがはらし」 !
5.4.2 補完しながら変換    「かしたん」 + M-SPC -> 「瑕疵担保責任」 !!
5.4.3 動的補完   

よく使う長い語を効率良く入力するには、アルファベットの略語を登録する方法もあります。 See 節 5.5.5 アスキー文字を見出し語とした変換



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.4.1 読みの補完

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C6%C9%A4%DF%A4%CE%CA%E4%B4%B0"
"skk/読みの補完"へのコメント(無し)

▽モードで TAB を押すと、見出し語 (▽マークから、ポイントまでの文字列) に 対する補完が 行われます。(31)

補完は、個人辞書の内、送りなしエントリに対して行われます。 個人辞書だけなのは、共有辞書では先頭の文字を共通にする見出し語が多すぎて、 望みの補完が行える確率が低いためです。

次の読みの候補を表示するには、`.' (ピリオド) を、戻る時には `,' (コンマ)を押します。その読みで別の語を出すには、いつものように SPC を 押します。

例を見てみましょう。実際の動作は、個人辞書の内容によって、異なります。

 
S a

------ Buffer: foo ------
▽さ
------ Buffer: foo ------

TAB

------ Buffer: foo ------
▽さとう
------ Buffer: foo ------

`.'

 
------ Buffer: foo ------
▽さいとう
------ Buffer: foo ------

`,'

------ Buffer: foo ------
▽さとう
------ Buffer: foo ------

SPC

------ Buffer: foo ------
▼佐藤
------ Buffer: foo ------

C-j

------ Buffer: foo ------
佐藤
------ Buffer: foo ------

補完される語は、どのような順で表示されるかと言うと、最近使われた語から、 となります。例えば、`斉藤'、`佐藤' の順で変換した後、`' をキー にして見出し語の補完を行うと、最初に `さとう' が、その次に `さいとう' が補完されます。これは、個人辞書では、最近使われたエントリほど 上位に来るようになっているためです。(32)

一旦 SPC を入力して▼モードに入ると、以後は補完は行われません。

また、`.' の代わりに C-u TAB を入力 すると、現在の候補に対して補完をします。上の例では `' に対し、 `さとう' が補完された時に C-u TAB を押すと、 以後の補完は、`さとう' を含む語 (例えば、`さとうせんせい'など) について行われます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.4.2 補完しながら変換

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CA%E4%B4%B0%A4%B7%A4%CA%A4%AC%A4%E9%CA%D1%B4%B9"
"skk/補完しながら変換"へのコメント(無し)

前節で見出し語の補完について述べました。本節では、見出し語の補完動作を行 った後、SPC を入力し、▼モードに入るまでの動作を一回の操作で行 う方法について説明します。

やり方は簡単。TABSPC と打鍵していたところを、 M-SPC に換えると、補完した上で変換を開始します。

この方法によると、補完される見出し語があらかじめ分かっている状況では、キー 入力を一回分省略できるので、長い見出し語の専門用語を連続して入力する場合 などに威力を発揮します。

 
K a s i t a n n p o s e k i n i n n

------ Buffer: foo ------
▽かしたんぽせきにん
------ Buffer: foo ------

SPC, RET

------ Buffer: foo ------
瑕疵担保責任
------ Buffer: foo ------

K a

------ Buffer: foo ------
▽か
------ Buffer: foo ------

M-SPC

------ Buffer: foo ------
▼瑕疵担保責任
------ Buffer: foo ------



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.4.3 動的補完

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C6%B0%C5%AA%CA%E4%B4%B0"
"skk/動的補完"へのコメント(無し)

▽モードで文字を入力する度に、TAB を押さなくても、常に、自動的に補完の 読みを表示させる事ができます。この機能を以下「動的補完」と呼びます。動的補完 も、個人辞書の送りなしエントリに対してのみ行なわれます。

類似の機能としては、ブラウザの URL の入力や、MS Excel のセル入力の自動補完 ( 同じ列に既に入力している文字列があったときにそれを参照して補完しようとする機 能) をイメージすると分かりやすいかも知れません。

この機能を利用するには `~/.emacs' もしくは `~/.skk' に下記の式を書 きましょう。

 
(setq skk-dcomp-activate t)

例を見てみましょう。実際の動作は、個人辞書の中身によります。 -!- は ポイント位置を表します。

 
H o

---------------- Buffer: foo ------------------
▽ほ-!-んとう
---------------- Buffer: foo ------------------

face が使える環境では、`んとう'の部分のみ異なる face で表示され、動 的補完により補完された部分であることを示します。

自動的に補完された見出し語が、自分の意図したものであれば TAB を押 すことでポイント位置を動かし、補完された見出し語を選択することができます。

 
TAB

---------------- Buffer: foo ------------------
▽ほんとう-!-
---------------- Buffer: foo ------------------

この状態から SPC を押して変換するなり、q を押してカタカナに するなり、DDSKK 本来の動作を何でも行うことができます。

補完された見出し語が自分の意図したものでない場合は、かまわず次の入力をし て下さい。補完された部分を無視したかのように動作します。

 
H o

---------------- Buffer: foo ------------------
▽ほ-!-んとう
---------------- Buffer: foo ------------------

k a

---------------- Buffer: foo ------------------
▽ほか-!-ん
---------------- Buffer: foo ------------------

補完されない状態が自分の意図したものである場合も、補完された部分を単に無 視するだけで OK です。下記の例では、`'を見出し語とした変換を行っ ています。

 
H o

---------------- Buffer: foo ------------------
▽ほ-!-んとう
---------------- Buffer: foo ------------------

SPC

---------------- Buffer: foo ------------------
▼保
---------------- Buffer: foo ------------------

補完された状態から BS を押すと、消された補完前の見出し語から再度補 完動作を行います。

 
H o

---------------- Buffer: foo ------------------
▽ほ-!-んとう
---------------- Buffer: foo ------------------

k a

---------------- Buffer: foo ------------------
▽ほか-!-ん
---------------- Buffer: foo ------------------

BS

---------------- Buffer: foo ------------------
▽ほ-!-んとう
---------------- Buffer: foo ------------------

`skk-dcomp.el' を load した後に、動的補完の機能を止めたかったら、下 記の式を評価しましょう。

 
(setq skk-dcomp-activate nil)

ユーザ変数: skk-dcomp-face

この変数の値はフェイスであり、このフェイスによって動的に補完された部分が 表示されます。標準では、"DarkKhaki" を用います。

ユーザ変数: skk-dcomp-multiple-activate

Non-nil であれば、動的補完の候補をインラインに複数表示します (33)

候補の選択には TAB を押します。また、普通の補完と同様に `.' (ピリオド) と `,' (コンマ) も利用できます。5.4.1 読みの補完

ユーザ変数: skk-dcomp-multiple-rows

動的補完の候補を複数表示する場合の表示数。標準は 7。

ユーザ変数: skk-dcomp-multiple-face

動的補完の複数表示群のフェイス

ユーザ変数: skk-dcomp-multiple-trailing-face

動的補完の複数表示郡の補完部分のフェイス

ユーザ変数: skk-dcomp-multiple-selected-face

動的補完の複数表示郡の選択対象のフェイス



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.5 便利な変換、その他の変換

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CA%D8%CD%F8%A4%CA%CA%D1%B4%B9%A1%A2%A4%BD%A4%CE%C2%BE%A4%CE%CA%D1%B4%B9"
"skk/便利な変換、その他の変換"へのコメント(無し)

5.5.1 単漢字変換   
5.5.2 候補の絞り込み   
5.5.3 接頭辞・接尾辞   
5.5.4 数値変換   
5.5.5 アスキー文字を見出し語とした変換    「wg」 -> 「ワーキンググループ」
5.5.6 今日の日付の入力   
5.5.7 プログラム実行変換    Emacs Lisp プログラムを使った変換。
5.5.8 空白・改行・タブを含んだ見出し語の変換   
5.5.9 ファンクションキーの使い方   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.5.1 単漢字変換

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C3%B1%B4%C1%BB%FA%CA%D1%B4%B9"
"skk/単漢字変換"へのコメント(無し)

単漢字変換では、候補は総画数の昇順でソートして表示します。 これは `skk-tankan.el' に提供されます。

5.5.1.1 検索キーの設定   
5.5.1.2 辞書の設定   

実は、単漢字変換を使うには設定が必要ですが、先に例を見てみましょう。

▽モードの最後の文字に @ を付加してから変換を開始してください。

 
T a n @

----- Buffer: foo -----
▽たん@-!-
----- Buffer: foo -----

SPC

----- Buffer: foo -----
▼丹-!-
----- Buffer: foo -----

----- Echo Area -----
4画(丶部3画)
----- Echo Area -----

SPC

----- Buffer: foo -----
▼反-!-
----- Buffer: foo -----

----- Echo Area -----
4画(又部2画)
----- Echo Area -----

SPC

----- Buffer: foo -----
▼旦-!-
----- Buffer: foo -----

----- Echo Area -----
5画(日部1画)
----- Echo Area -----

SPC

----- Buffer: foo -----
▼但-!-
----- Buffer: foo -----

----- Echo Area -----
7画(人部5画)
----- Echo Area -----

SPC

----- Buffer: foo -----
▼-!-
----- Buffer: foo -----

----- Buffer: *候補* -----
A:坦;8画(土部5画)
S:担;8画(手部5画)
D:単;9画(十部7画)
F:彖;9画(彑部6画)
J:炭;9画(火部5画)
K:眈;9画(目部4画)
L:胆;9画(肉部5画)
[残り 50+++++]
----- Buffer: *候補* -----

以上のとおり、総画数の昇順でソートされた候補が次々に表示されます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.5.1.1 検索キーの設定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B8%A1%BA%F7%A5%AD%A1%BC%A4%CE%C0%DF%C4%EA"
"skk/検索キーの設定"へのコメント(無し)

デフォルトの検索キーは @ です。しかし、DDSKK の標準設定では キー @ は関数 skk-today に割り当てられています( 変数 skk-rom-kana-base-rule-list5.5.6 今日の日付の入力.)。

ここでは、キー @skk-today ではなく、単漢字変換の検索キ ーとして使用するために `~/.skk' で次の設定を行います

 
;; @ を入力できるようにする
(setq skk-rom-kana-rule-list
      (append skk-rom-kana-rule-list
      '(("@" nil "@"))))

もしこれでも日付が入力されてしまうようなら、既に別の設定が skk-rom-kana-rule-list に対して行われていますので、 それを見直して下さい。

なお、単漢字変換の検索キーは、変数 skk-tankan-search-key で変更す ることも可能です。 以下に検索キーを ! へと変更する例を挙げます。

 
(setq skk-tankan-search-key ?!)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.5.1.2 辞書の設定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AD%BD%F1%A4%CE%C0%DF%C4%EA"
"skk/辞書の設定"へのコメント(無し)

`skk-tankan.el' には、漢字の部首とその中での画数の データのみが入っています。読みのデータは、普通の辞書ファイルを使います。

単漢字変換の辞書の設定は、変数 skk-search-prog-list に以下の形式で 要素を追加します。

 
(skk-tankan-search 'function . args) 

ただし、「確定変換」を併用する場合は、skk-search-prog-list の 先頭の要素は skk-search-kakutei-jisyo-file であることが必要です。 「確定変換」を使用しない場合は、 skk-search-prog-list の要素 の先頭が skk-tankan-search でも大丈夫です。

See 節 5.10.3 辞書の検索方法の設定.

以下に、具体例を挙げます。

 
;; skk-search-prog-list の 2 番目の要素に skk-tankan-search を追加する
(setq skk-search-prog-list
      (cons (car skk-search-prog-list)
               (cons '(skk-tankan-search 'skk-search-jisyo-file
                                         skk-large-jisyo 10000)
                     (cdr skk-search-prog-list))))



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.5.2 候補の絞り込み

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B8%F5%CA%E4%A4%CE%B9%CA%A4%EA%B9%FE%A4%DF"
"skk/候補の絞り込み"へのコメント(無し)

`skk-hint.el' は、2つの読みの積集合みたいなものを取ることによって 候補の絞り込みを行うプログラムです。 インストールは `~/.skk' に以下を記入します。

 
(require 'skk-hint)

例えば、読み "かんどう" に対する変換は L 辞書によると

 
感動、勘当、完動、間道、官道、貫道

と複数の候補があります。

一方、これに "あいだ" という「他の読み」(ヒント)を与えると候補は "間道" に一意に決まります。 ヒントは ; に続けて入力します。

 
K a n d o u ; a i d a; 自体は表示されません。

----- Buffer: foo -----
▽かんどうあいだ
----- Buffer: foo -----

SPC

----- Buffer: foo -----
▼間道
----- Buffer: foo -----

`skk-hint.el' は、2つの読みの厳密な積集合を取っているわけではなく、 通常の変換候補のなかでヒントとして与えられた読みを含んだ漢字を持つものに 候補を絞ります。この実例として "感動" と "感圧" を挙げます。

 
K a n d o u ; k a n n a t u

----- Buffer: foo -----
▽かんどうかんあつ
----- Buffer: foo -----

SPC

----- Buffer: foo -----
▼感動
----- Buffer: foo -----

`skk-hint.el' は単漢字の候補がたくさんある場合に、そこから候補を絞 りこむ手段としても非常に有効です。例えば

 
▽わ

を変換すると、輪、環、話、和、羽、…と大量に候補が出てきます。 この中から "和" を選びたいとします。普通に変換していても そのうち "和" が表示されますが、これを W a ; h e i w a と入力し 変換すると、「▼へいわ」の候補である「平和」に含まれる

 
▼和

が唯一の候補となります。

 
W a ; h e i w a

----- Buffer: foo -----
▽わへいわ
----- Buffer: foo -----

SPC

----- Buffer: foo -----
▼和
----- Buffer: foo -----



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.5.3 接頭辞・接尾辞

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C0%DC%C6%AC%BC%AD%A1%A6%C0%DC%C8%F8%BC%AD"
"skk/接頭辞・接尾辞"へのコメント(無し)

接頭辞 (prefix)、接尾辞 (suffix)の入力のために特別な方法が用意されていま す。たとえば、「し」の候補は沢山あり、「し」から「氏」を変換するのは、そのままでは 効率が悪いです。接尾辞の「し」ならば、「氏」や「市」が優先されるでしょう。

接頭辞・接尾辞は辞書の中では、`>' などで示されます。

 
>し /氏/

というエントリがあるとき、`小林氏'を接尾辞入力を用いて、以下のよう に入力することができます。

 
K o b a y a s h i

------ Buffer: foo ------
▽こばやし-!-
------ Buffer: foo ------

SPC

------ Buffer: foo ------
▼小林-!-
------ Buffer: foo ------

>

------ Buffer: foo ------
小林▽>-!-
------ Buffer: foo ------

s i

------ Buffer: foo ------
小林▽>し-!-
------ Buffer: foo ------

SPC

------ Buffer: foo ------
小林▼氏-!-
------ Buffer: foo ------

C-j

------ Buffer: foo ------
小林氏-!-
------ Buffer: foo ------

接頭辞も同様です。辞書に

 
ちょう> /超/

というエントリがあるとき、`超大型' を接頭辞入力を用いて、以下のよう に入力することができます。

 
T y o u

------ Buffer: foo ------
▽ちょう-!-
------ Buffer: foo ------

>

------ Buffer: foo ------
▼超-!-
------ Buffer: foo ------

O o g a t a

------ Buffer: foo ------
超▽おおがた-!-
------ Buffer: foo ------

SPC

------ Buffer: foo ------
超▼大型-!-
------ Buffer: foo ------

C-j

------ Buffer: foo ------
超大型-!-
------ Buffer: foo ------

キー > を押しただけで、SPC が押されたかのように変換されます。 他の接頭辞を選びたいときは、SPC を押して下さい。

skk-special-midashi-char-list

▽モードまたは▼モードにおいて、この変数の値に含まれる文字の入力があった 場合、接頭辞・接尾辞の入力を開始します。この変数の既定値は、

 
(?> ?< ??)

です。つまり、`>' と `<' と `?' を入力した時に接頭辞・接尾辞入 力を行います。`?' を入力したときに接頭辞・接尾辞入力を行わない場合は `?' を外して

 
(setq skk-special-midashi-char-list '(?> ?<))

とします。

L 辞書の接頭・接尾辞は、昔は `<', `?' も使われていましたが、 現在は `>' に統一されています。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.5.4 数値変換

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BF%F4%C3%CD%CA%D1%B4%B9"
"skk/数値変換"へのコメント(無し)

DDSKK は、`だい12かい' を変換すると、`第12回'、`第一二回'、 `第十二回' とするなど、数を含む語を様々に変換できます。

この節では、このような候補を辞書に登録する方法を説明します。基本は、 数字の部分を `#' で置き替えることです。SKK の L 辞書から、 具体例を見てみましょう。

 
だい#かい /第#1回/第#0回/第#2回/第 #0 回/第#3回/

`だい12かい' のような見出し語で変換しようとした場合、見出し語の数字 の部分は自動的に `#' に置き換えられるようになっているので、上記の例 にマッチします。

右辺の `#1'、`#2' などは、どのように数字を加工するか、のタイプを 表します。以下、各タイプについて説明します。

`#0'

タイプ 0。無変換。入力されたアスキー文字をそのまま出力します。例えば、 `第12回' のような変換を得るために使われます。

`#1'

タイプ 1。全角文字での数字。`12' を `12'に変換します。

`#2'

タイプ 2。漢数字で位取りあり。`5500' を `五五〇〇' に変換しま す。

`#3'

タイプ 3。漢数字で位取りなし。`5500' を `五千五百' に変換しま す。

`#4'

タイプ 4。数値再変換。見出し語中の数字そのもの (34)をキーとして辞書を再検索し、 `#4' の部分を再検索の結果の文字列で入れ替えます。これについては後で 例を挙げて説明します。

`#5'

タイプ 5。小切手や手形の金額記入の際用いられる表記で変換します。例えば、 `1995' を `壱阡九百九拾伍' に変換します。(これを大字と言います。)

`#9'

タイプ 9。将棋の棋譜の入力用。`全角数字 + 漢数字' に変換します。こ れについては後で例を挙げて説明します。

以下にいくつか例を示します。辞書に

 
# /#3/

というエントリがあるときに、

 
Q 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 SPC(35)

と入力すれば、`百兆二千三億四十万五百'と変換されます (36)

辞書に

 
#m#d /#0月#0日/

というエントリがあるときに、/ 2 m 2 5 d SPC と入力すれば、 `2月25日'と変換されます (37)

辞書に

 
#kin /#9金/

というエントリがあるときに、/ 3 4 k i n SPC と入力すれば、 `3四金'と変換されます。

辞書に

 
p# /#4/
125 /東京都葛飾区/

というエントリがあるときに、/ p 1 2 5 SPC と入力すれば、見出 し語 `p125' の候補が `#4' なので、見出し語の数字部分の `125' に対し辞書が再検索され、`東京都葛飾区' と変換されます。

最後に、実際に登録する例を 1 つ挙げます。`2月25日'を得るために、

 
Q 2 g a t u 2 5 n i t i SPC

と入力したときに、辞書に見出し語

 
#がつ#にち /#1月#1日/

がないときは、辞書登録時のプロンプトは、`#がつ#にち'となります。 全角数字のタイプは、`#1' なので、 `#1月#1日' をミニバッファで作り登 録します。

タイプを覚えている必要はありません。ちゃんと、ウィンドウが開かれて説明が 表示されます。

ユーザ変数: skk-num-convert-float

この変数の値を non-nil に設定すると、浮動小数点数を使った見出し語 に対応して数値変換を行います。ただし、辞書において

 
#.# /#1.#1/#0月#0日/

などの見出し語が使用できなくなります。

ユーザ変数: skk-use-numeric-conversion

この変数を nil に設定すると、本節で説明した数値変換の機能を全て 無効にします。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.5.5 アスキー文字を見出し語とした変換

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%A2%A5%B9%A5%AD%A1%BC%CA%B8%BB%FA%A4%F2%B8%AB%BD%D0%A4%B7%B8%EC%A4%C8%A4%B7%A4%BF%CA%D1%B4%B9"
"skk/アスキー文字を見出し語とした変換"へのコメント(無し)

かなモードで / を入力すると SKK abbrev mode に入り、以後の入力は アスキー文字になります。普通に SPC を押すと、その見出し語についての変換が 得られます。

仮に、

 
is /インクリメンタル・サーチ/

というようなエントリが辞書にあるとして、例を示します。

 
/

------ Buffer: foo ------
▽
------ Buffer: foo ------

is

------ Buffer: foo ------
▽is
------ Buffer: foo ------

SPC

------ Buffer: foo ------
▼インクリメンタル・サーチ
------ Buffer: foo ------

C-j

------ Buffer: foo ------
インクリメンタル・サーチ
------ Buffer: foo ------

変換が終わると、SKK abbrev mode は終わり、かなモードに戻ります。

SKK abbve mode で使われる辞書は、普通の変換と同じです。エントリがアスキー文字で 書かれているだけで、特殊な点はありません。

入力したアスキー文字をそのまま全角アルファベットに変換する方法については、 5.3.2 全英文字の入力 を参照してください。

なお、SKK abbrev mode においても見出し語の補完を行うことができます。 See 節 5.4 補完.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.5.6 今日の日付の入力

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BA%A3%C6%FC%A4%CE%C6%FC%C9%D5%A4%CE%C6%FE%CE%CF"
"skk/今日の日付の入力"へのコメント(無し)

かな/カナモードで @ を入力すれば、今日の日付が入力されます。

日付の形式は以下の変数により決定されます。

ユーザ変数: skk-date-ad

この変数の値が non-nil であれば西暦で、nil であれば元号で 表示します。既定値は nil です。

ユーザ変数: skk-number-style

この変数の値は以下のように解釈されます。

0
nil

半角数字。`1996年7月21日(日)' のようになります。

1
t

全角数字。`1996年7月21日(日)' のようになります。

2

漢数字。`一九九六年七月二一日(日)' のようになります。

3

漢数字。`千九百九十六年七月二十一日(日)' のようになります。

上記の `1996年'、`1996年'、`一九九六年' の部分は、変 数 skk-date-ad の値が nil であれば `平成8年' のよう に元号で表示されます。 skk-number-style の既定値は、`1' です。

L 辞書 (38)には、見出し語 `today' の候補 として、skk-date-adskk-number-style の全ての組合わせが プログラム実行変換機能(39)を用いて登録さ れています。従って、/ t o d a y SPC と入力すると、今日の日付 が上記の形式で順次候補として表示されます。

@ によって日付けを挿入するのではなく、文字通り @ を挿入し たい場合には、

 
(setq skk-rom-kana-rule-list
      (append skk-rom-kana-rule-list
              '(("@" nil "@"))))

のようにします。全角文字の `' を挿入したい場合は、

 
(setq skk-rom-kana-rule-list
      (append skk-rom-kana-rule-list
              '(("@" nil "@"))))

のようにします。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.5.7 プログラム実行変換

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%D7%A5%ED%A5%B0%A5%E9%A5%E0%BC%C2%B9%D4%CA%D1%B4%B9"
"skk/プログラム実行変換"へのコメント(無し)

辞書の候補に Emacs Lisp のプログラムが書いてあれば、そのプログラムを Emacs に実行させ、返り値をカレントバッファに挿入します。これを 「プロ グラム実行変換」と読んでいます。例えば、辞書に

 
now /(current-time-string)/

というエントリがあるとします。このとき / n o w SPC と入力す れば、現在のバッファに current-time-string の返り値である

 
Sun Jul 21 06:40:34 1996

のような文字列が挿入されます。

ここで、プログラムの返り値は文字列である必要があります。また、プログラム 実行変換の辞書登録は通常の単語と同様に行うことができますが、その中に改 行を含まないように書く必要があります (40)

今日の日付の入力 (41) で説明した `today' の辞書エント リは、実際は下記のようなプログラムを候補にもっています。

 
today /(let ((skk-date-ad) (skk-number-style t)) (skk-today))/.../

`skk-gadget.el' (42)には、西暦/元号変換プログラ ムや、簡単な計算プログラムなど、実行変換用のプログラムが集められています。 以下、2つの例を掲げます。

Function: skk-calc operator

skk-calc は、引数を 1 つ取り、見出し語の数字に対しその演算を行う簡単な計算 プログラムです。

 
(defun skk-calc (operator)
  ;;2つの引数を取って operator の計算をする。
  ;;注意: '/ は引数として渡せないので (defalias 'div '/) などとし、別の形で
  ;;skk-calc に渡す。
  ;;辞書見出し例; #*# /(skk-calc '*)/
  (number-to-string (apply operator
                           (mapcar 'string-to-number 
                                   skk-num-list))))

この関数を実際にプログラム実行変換で利用するには、辞書に以下のようなエン トリを追加します (43)

 
#*# /(skk-calc '*)/

Q 1 1 1 * 4 5 SPC と入力します。ここで、`111' と `45' の 2 つの数字は、変換時に ("111" "45") のような文字 列のリストにまとめられ、変数 skk-num-list の値として保存されます。 次に関数 skk-calc が呼ばれます。この中で、skk-num-list の 各要素に対し演算を行うため、各要素は数に変換されます。その上で、 skk-calc に与えられた引数 (この場合は `*') を演算子として演 算を行います。

Function: skk-gadget-units-conversion 基準単位 数値 変換単位

数値について、基準単位から変換単位への変換を行います。

 
/ 1 3 m i l e

------ Buffer: foo ------
▽13mile-!-
------ Buffer: foo ------

SPC

------ Buffer: foo ------
▼20.9209km-!-
------ Buffer: foo ------

RET

------ Buffer: foo ------
20.9209km-!-
------ Buffer: foo ------

単位変換の情報は、変数 skk-units-alist で定義されています。

ユーザ変数: skk-units-alist

この変数は以下の形式の連想リストです。

 
(基準となる単位 (変換する単位 . 変換時の倍率)
                (… . …))

関数 skk-gadget-units-conversion で利用されています。デフォルトで は、以下の単位変換の情報を定義しています。

 
("mile" ("km" . 1.6093)
        ("yard" . 1760))

("yard" ("feet" . 3)
        ("cm" . 91.44))

("feet" ("inch" . 12)
        ("cm" . 30.48))

("inch" ("feet" . 0.5)
        ("cm" . 2.54))



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.5.8 空白・改行・タブを含んだ見出し語の変換

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B6%F5%C7%F2%A1%A6%B2%FE%B9%D4%A1%A6%A5%BF%A5%D6%A4%F2%B4%DE%A4%F3%A4%C0%B8%AB%BD%D0%A4%B7%B8%EC%A4%CE%CA%D1%B4%B9"
"skk/空白・改行・タブを含んだ見出し語の変換"へのコメント(無し)

変換の際、見出し語の中の空白、改行、タブは無視されます。

 
---------------- Buffer: foo ------------------
▽じんじょうしょ
うがっこう-!-
---------------- Buffer: foo ------------------

SPC

---------------- Buffer: foo ------------------
▼尋常小学校-!-
---------------- Buffer: foo ------------------

オートフィルモードで折り返された文字列に対し、折り返された状 態のまま変換を行うこともできます。

 
---------------- Buffer: foo ------------------
仮名漢字変換プログラムをさ
くせいしました。-!-
---------------- Buffer: foo ------------------

C-u 10 C-b Q

---------------- Buffer: foo ------------------
仮名漢字変換プログラムを▽-!-さ
くせいしました。
---------------- Buffer: foo ------------------

C-u 5 C-f

---------------- Buffer: foo ------------------
仮名漢字変換プログラムを▽さ
くせい-!-しました。
---------------- Buffer: foo ------------------

SPC

---------------- Buffer: foo ------------------
仮名漢字変換プログラムを▼作成-!-しました。
---------------- Buffer: foo ------------------

ここでは改行を越えて見出し語を探し、変換する例を示しました。同様に、空白、 タブ文字を中間に含む文字列に対しても変換を行うことができます。

ユーザ変数: skk-allow-spaces-newlines-and-tabs

この変数を nil に設定すると、本節で説明したような 2 行以上にま たがる文字列に対する変換を禁止します。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.5.9 ファンクションキーの使い方

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%D5%A5%A1%A5%F3%A5%AF%A5%B7%A5%E7%A5%F3%A5%AD%A1%BC%A4%CE%BB%C8%A4%A4%CA%FD"
"skk/ファンクションキーの使い方"へのコメント(無し)

ユーザ変数: skk-j-mode-function-key-usage
シンボル conversion ならば、skk-search-prog-list-{1-9,0} を実行するよう 自動設定します。

シンボル kanagaki ならば、かなキーボード入力用に自動設定します。

nil ならば、自動設定しません。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6 キー設定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%AD%A1%BC%C0%DF%C4%EA"
"skk/キー設定"へのコメント(無し)

文字の入力
5.6.1 かなモード/カナモードのキー設定   
5.6.2 全英モードのキー設定   
5.6.3 閉じ括弧の自動入力   


変換、確定など
5.6.4 確定するキー    RET 以外で確定されるには
5.6.5 候補の選択に用いるキー    asdfjkl 以外
5.6.6 ▼モードでのRET    改行も同時にする? しない?
5.6.7 ▼モードでのBS    削除 vs 前候補
5.6.8 送りあり変換中のC-g   
5.6.9 変換位置の指定方法   



5.6.10 1回の取り消し操作(undo)の対象   

関連項目: 6. ローマ字入力以外の入力方式



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.1 かなモード/カナモードのキー設定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A4%AB%A4%CA%A5%E2%A1%BC%A5%C9%2F%A5%AB%A5%CA%A5%E2%A1%BC%A5%C9%A4%CE%A5%AD%A1%BC%C0%DF%C4%EA"
"skk/かなモード/カナモードのキー設定"へのコメント(無し)

5.6.1.1 ローマ字のルールの設定   
5.6.1.2 ローマ字ルールの変更例   
5.6.1.3 ■モードに関連するその他の変数   
5.6.1.4 数字や記号文字の入力   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.1.1 ローマ字のルールの設定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%ED%A1%BC%A5%DE%BB%FA%A4%CE%A5%EB%A1%BC%A5%EB%A4%CE%C0%DF%C4%EA"
"skk/ローマ字のルールの設定"へのコメント(無し)

skk-rom-kana-base-rule-list
skk-rom-kana-rule-list

DDSKK の■モードにおける文字変換は、上記 2 変数を用いて行われます。 skk-rom-kana-base-rule-list には基本的なローマ字のルールが 定められています。一方、skk-rom-kana-rule-list はユーザが独自の規則を 定義するために用意されていて、前者より優先されます。

これらは、「入出力の状態がいかに移り変わるべきか」を決定します。その内容は、

 
(入力される文字列 出力後に自動的に入力に追加される文字列 出力)

という形のリストを列挙したものです。

`入力される文字列' とは変換される前のアスキー文字の文字列をいいます。

`出力' は次の入力状態に移るときにバッファに挿入される文字列の組み合 わせであり、 ("ア" . "あ") のようなコンスセルです。

skk-rom-kana-base-rule-list の一部を見てみましょう。

 
("a" nil ("ア" . "あ"))
("ki" nil ("キ" . "き"))
("tt" "t" ("ッ" . "っ"))
("nn" nil ("ン" . "ん"))
("n'" nil ("ン" . "ん"))

のような規則があります。これによると

 
a ==>あ
ki ==>き
tt ==>っt
nn ==>ん
n' ==>ん

のようになります。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.1.2 ローマ字ルールの変更例

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%ED%A1%BC%A5%DE%BB%FA%A5%EB%A1%BC%A5%EB%A4%CE%CA%D1%B9%B9%CE%E3"
"skk/ローマ字ルールの変更例"へのコメント(無し)

skk-rom-kana-base-rule-list の規則に従うと

 
hannou ==>はんおう
han'ou ==>はんおう
hannnou ==>はんのう

のようになります。ここで

 
(setq skk-rom-kana-rule-list
      (append skk-rom-kana-rule-list
              '(("nn" "n" ("ン" . "ん")))))

のような設定にすることで

 
hannou ==>はんのう

のようにローマ字かな変換が行われるようになります。

他の例として、略号を設定することもできます。

 
tp ==>東北大学
skk ==>skk
skK ==>SKK

といった変換は、

 
("tp" nil ("東北大学" . "東北大学"))
("sk" nil ("" . ""))
("skk" nil ("skk" . "skk"))
("skK" nil ("SKK" . "SKK"))

のような規則を追加することで実現されます。自分の名前を入力することはよく あるので、適当な省略形を用いて、このリストに追加しておく、といった利用を お勧めします。

更に skk-rom-kana-rule-list を用いれば TUT-code による日本語入力を 実現することもできます。例えば TUT-code による入力についてはソースアーカ イブの `tut-code' ディレクトリに収録されているソースコードを参照して ください。 (see 節 6. ローマ字入力以外の入力方式)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.1.3 ■モードに関連するその他の変数

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A2%A3%A5%E2%A1%BC%A5%C9%A4%CB%B4%D8%CF%A2%A4%B9%A4%EB%A4%BD%A4%CE%C2%BE%A4%CE%CA%D1%BF%F4"
"skk/■モードに関連するその他の変数"へのコメント(無し)

ユーザ変数: skk-kana-input-search-function

ルールリストの中に記せない変換ルールを処理する関数。 これは skk-rom-kana-base-rule-listskk-rom-kana-rule-list の 要素を全て検索した後にコールされます。引数はありません。バッファの文字を、 直接 preceding-char などで調べて下さい。

初期設定では h で、長音を表すために使われています。次の例を見て下さい。

 
ohsaka ==> おおさか
ohta ==> おおた

一方で、hh は「っ」になります。

 
ohhonn ==> おっほん
ohhira ==> おっひら

これは skk-rom-kana-rule-list の既定値に

 
("hh" "h" ("ッ" . "っ"))

が入っているためです。これを削除すれば

 
ohhonn ==> おおほん
ohhira ==> おおひら

となります。

ユーザ変数: skk-kutouten-type
■モードの標準では、キーボードの . をタイプすると「。」が、 , をタイプすると「、」がバッファに入力されます。 変数 skk-kutouten-type に適切なシンボルを設定することにより、この 組み合せを変更することができます (44)。そのシンボルとは、次の4つです。

 
'jp    ==> 「。」「、」 (デフォルト)
'en    ==> 「.」「,」
'jp-en ==> 「。」「,」
'en-jp ==> 「.」「、」

または、変数 skk-kutouten-type にはコンス・セルを指定することも可 能です。その場合は、

 
(句点を示す文字列 . 読点を示す文字列)

のように指定します。例として、次のように設定するとキーボード の .abc が、,def がバッファに入力され ます。

 
(setq skk-kutouten-type '("abc" . "def"))

なお、変数 skk-kutouten-type はバッファローカル変数です。すべての バッファで統一した設定としたい場合は、

 
(setq-default skk-kutouten-type 'en)

のように関数 setq-default を用いてください。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.1.4 数字や記号文字の入力

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BF%F4%BB%FA%A4%E4%B5%AD%B9%E6%CA%B8%BB%FA%A4%CE%C6%FE%CE%CF"
"skk/数字や記号文字の入力"へのコメント(無し)

かなモード/カナモードにおける次のキーは、かつては skk-self-insert 関数にバインドされていました。現在は他のキーと同様に skk-insert 関数にバインドされています。

 
!  #  %  &  '  *  +

-  0  1  2  3  4  5

6  7  8  9  :  ;  <

=  >  ?  "  (  )  [

]  {  }  ^  _  `  |

~

これらの数字や記号文字のキーに対応し挿入される文字は、変数 skk-input-vector の値により決定されていましたが、DDSKK 10 にてこ の変数は廃止されました。カスタマイズするためには、代わりに変数 skk-rom-kana-rule-list を利用します。例えば、SKK 9.6 以前において、

 
(aset skk-input-vector ?! nil)
(aset skk-input-vector ?, nil)
(aset skk-input-vector ?. nil)
(aset skk-input-vector ?: nil)
(aset skk-input-vector ?; nil)
(aset skk-input-vector ?? nil)

このような設定をしていた場合、DDSKK 10.x 以降で同様の入力をするためには、

 
(setq skk-rom-kana-rule-list
      (append skk-rom-kana-rule-list
              '(("!" nil "!")
                ("," nil ",")
                ("." nil ".")
                (":" nil ":")
                (";" nil ";")
                ("?" nil "?"))))

のような設定に変更する必要があります。

skk-insert は、Emacs のオリジナル関数 self-insert-command をエミュレートしています。具体的には、引数を渡すことによって同じ文字を複 数、一度に挿入することが可能です (45)

 
C-u 2 !

------ Buffer: foo ------
!!
------ Buffer: foo ------



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.2 全英モードのキー設定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C1%B4%B1%D1%A5%E2%A1%BC%A5%C9%A4%CE%A5%AD%A1%BC%C0%DF%C4%EA"
"skk/全英モードのキー設定"へのコメント(無し)

全英モードにおける印字可能な全てのキーはコマンド skk-jisx0208-latin-insert に割り付けられています。また、変数 skk-jisx0208-latin-vector の値により挿入される文字が決定されます。 skk-jisx0208-latin-vector の既定値は以下のようになっています。

 
[nil  nil  nil  nil  nil  nil  nil  nil
 nil  nil  nil  nil  nil  nil  nil  nil
 nil  nil  nil  nil  nil  nil  nil  nil
 nil  nil  nil  nil  nil  nil  nil  nil
 " "  "!" "”" "#" "$" "%" "&" "’"
 "(" ")" "*" "+" "," "−" "." "/"
 "0" "1" "2" "3" "4" "5" "6" "7"
 "8" "9" ":" ";" "<" "=" ">" "?"
 "@" "A" "B" "C" "D" "E" "F" "G"
 "H" "I" "J" "K" "L" "M" "N" "O"
 "P" "Q" "R" "S" "T" "U" "V" "W"
 "X" "Y" "Z" "[" "\" "]" "^" "_"
 "‘" "a" "b" "c" "d" "e" "f" "g"
 "h" "i" "j" "k" "l" "m" "n" "o"
 "p" "q" "r" "s" "t" "u" "v" "w"
 "x" "y" "z" "{" "|" "}" "〜" nil]

挿入される文字の変更方法を知りたい場合は、5.6.1.4 数字や記号文字の入力 を参照してください。

skk-jisx0208-latin-insert も Emacs オリジナルの関数 self-insert-command をエミュレートしています。つまり、引数を渡す ことにより同じ文字を複数、一度に挿入することができます。 skk-insert における動作と同じですから、 5.6.1.4 数字や記号文字の入力 における例を参考にしてください。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.3 閉じ括弧の自動入力

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CA%C4%A4%B8%B3%E7%B8%CC%A4%CE%BC%AB%C6%B0%C6%FE%CE%CF"
"skk/閉じ括弧の自動入力"へのコメント(無し)

通常、`「' を入力したら、`」' を後で入力する必要があります。`「' の入 力時点で、対になる文字を自動挿入してくれると打鍵数を減らすことができます し、同時に入力忘れの防止にもなるでしょう。

そのために変数 skk-auto-insert-paren が用意されています。この値を non-nil にすると、上記の自動挿入を行います。

 
------ Buffer: foo ------
彼はこう言った-!-
------ Buffer: foo ------

[

------ Buffer: foo ------
彼はこう言った「-!-」
------ Buffer: foo ------

上記のように `「' の入力時点で対となる`」'を自動挿入し、`「'と`」'の間に ポイントを再配置するので、その位置からかぎかっこに囲まれた文字列を即始め ることができます。

自動挿入すべきペアの文字列は、変数 skk-auto-paren-string-alist で 指定します。既定値は下記のようになっています。

 
(("「" . "」") ("『" . "』") ("(" . ")") ("(" . ")") ("{" . "}")
 ("{" . "}") ("〈" . "〉") ("《" . "》") ("[" . "]") ("[" . "]")
 ("〔" . "〕") ("【" . "】") ("\"" . "\"") ("“" . "”") ("`" . "'"))

これは、ひと言でまとめると、「開き括弧と閉じ括弧とのコンスセルを集めたリ スト」です。各コンスセルの car にある文字列を挿入したときに、 cdr にある文字列が自動挿入されます。 (46) (47)

キーとなる文字の挿入が行われても、その挿入後のポイントに自動挿入すべき 文字が既に存在している場合には、自動挿入は行われないように設計されてい ます。

 
------ Buffer: foo ------
-!-」
------ Buffer: foo ------

[

------ Buffer: foo ------
「-!-」
------ Buffer: foo ------

対になる文字を複数挿入したい場合は、引数を渡して文字を指定します。

 
C-u 2 [

------ Buffer: foo ------
「「-!-」」
------ Buffer: foo ------

yatex-mode など、既に同種の機能が付いているモードがあります。その ようなモードにおいてもこの自動挿入の機能が邪魔になることはないでしょうが、 そのモードにおいてのみこの機能をオフにしたい場合は、該当のモードに入った ときにコールされるフック変数を利用して設定を行うことができます。

 
(add-hook 'yatex-mode-hook
          #'(lambda ()
              (when skk-auto-insert-paren
                (make-local-variable 'skk-auto-insert-paren)
                (setq skk-auto-insert-paren nil))))

特定のモードにおいて、自動挿入すべき文字を変更したい場合にも同様にフック 変数を用いて操作できます。

 
(add-hook 'tex-mode-hook
          #'(lambda ()
              (when skk-auto-insert-paren
                (make-local-variable 'skk-auto-paren-string-alist)
                (setq skk-auto-paren-string-alist
                      (cons '("$" . "$") skk-auto-paren-string-alist)))))

同様に、特定のペアを削除したい場合は、例えば下記のように設定します。

 
(add-hook 'tex-mode-hook
          #'(lambda ()
              (when skk-auto-insert-paren
                (make-local-variable 'skk-auto-paren-string-alist)
                (setq skk-auto-paren-string-alist
                      (delete
                       '("$" . "$")
                       (copy-sequence skk-auto-paren-string-alist))))))



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.4 確定するキー

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B3%CE%C4%EA%A4%B9%A4%EB%A5%AD%A1%BC"
"skk/確定するキー"へのコメント(無し)

skk-kakutei-key

この変数の値は、明示的な確定動作を行うキーを指定します。標準設定では \C-j となっています。

関連事項: 5.7.4 暗黙の確定のタイミング



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.5 候補の選択に用いるキー

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B8%F5%CA%E4%A4%CE%C1%AA%C2%F2%A4%CB%CD%D1%A4%A4%A4%EB%A5%AD%A1%BC"
"skk/候補の選択に用いるキー"へのコメント(無し)

変換において、候補が 5 つ以上あるときは、 5 番目以降の候補は 7 つずつま とめてエコーエリアに下記のように表示されます (48)

 
-------------------- Echo Area --------------------
A:嘘  S:拒  D:拠  F:虚  J:挙  K:許  L:渠  [残り 2]
-------------------- Echo Area --------------------

この際、候補の選択に用いるキーは、次の変数によって決定されます。

skk-henkan-show-candidates-keys

7つの異なる文字のリスト。文字は必ず小文字とする (49)。 既定値は、以下の通り。

 
(?a ?s ?d ?f ?j ?k ?l)

メニューによる文字入力 (50)の際に候補の選択 に用いられるキーは、次の2つの変数により変更されます。

skk-input-by-code-menu-keys1

第1段階のメニューにおける候補の選択キー。既定値は、

 
(?a ?s ?d ?f ?g ?h ?q ?w ?e ?r ?t ?y)

です。このリストには 12 個の異なる文字を含む必要があります。

skk-input-by-code-menu-keys2

第2段階のメニューにおける候補の選択キー。既定値は、

 
(?a ?s ?d ?f ?g ?h ?j ?k ?l ?q ?w ?e ?r ?t ?y ?u)

です。このリストには 16 個の異なる文字を含む必要があります。

上記の2つの変数の要素は全て小文字で指定することを強くお勧めします (51)

ユーザ変数: skk-henkan-show-candidates-keys-face
選択キーを表示する際のフェイスを指定します。

ユーザ変数: skk-henkan-rest-indicator
Non-nil であれば `[残り 99++]' の表示を右寄せ配置する。

ユーザ変数: skk-henkan-rest-indicator-face
`[残り 99++]' の face 属性。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.6 ▼モードでのRET

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A2%A7%A5%E2%A1%BC%A5%C9%A4%C7%A4%CERET"
"skk/▼モードでのRET"へのコメント(無し)

標準設定では、

 
K a k u t e i SPC

------ Buffer: foo ------
▼確定-!-
------ Buffer: foo ------

RET

------ Buffer: foo ------
確定
-!-
------ Buffer: foo ------

のように、▼モードで RET を入力すると、確定し、かつ改行を行います。 この挙動を変えるためのユーザオプションが用意されています。

ユーザ変数: skk-egg-like-newline

この変数の値を non-nil にすると、▼モードで RET を入力した ときに確定のみ行い、改行はしません。(52)

 
K a k u t e i SPC

------ Buffer: foo ------
▼確定-!-
------ Buffer: foo ------

RET

------ Buffer: foo ------
確定-!-
------ Buffer: foo ------



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.7 ▼モードでのBS

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A2%A7%A5%E2%A1%BC%A5%C9%A4%C7%A4%CEBS"
"skk/▼モードでのBS"へのコメント(無し)

標準設定では、▼モードで BS を押すと、前の一文字を削除した上で確定 します。

 
D e n k i y a SPC

------ Buffer: foo ------
▼電気屋
------ Buffer: foo ------

BS

------ Buffer: foo ------
電気
------ Buffer: foo ------

skk-delete-implies-kakutei

この変数の値を nil に設定すると、▼モードで BS を押した時 に一つ前の候補を表示します。例えば、

 
でんき /電気/伝記/

という辞書エントリがあるとき、以下のようになります。

 
D e n k i

------ Buffer: foo ------
▽でんき
------ Buffer: foo ------

SPC

------ Buffer: foo ------
▼電気
------ Buffer: foo ------

SPC

------ Buffer: foo ------
▼伝記
------ Buffer: foo ------

BS

------ Buffer: foo ------
▼電気
------ Buffer: foo ------

BS

------ Buffer: foo ------
▽でんき
------ Buffer: foo ------



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.8 送りあり変換中のC-g

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C1%F7%A4%EA%A4%A2%A4%EA%CA%D1%B4%B9%C3%E6%A4%CEC%2Dg"
"skk/送りあり変換中のC-g"へのコメント(無し)

送りありの変換中に C-g を入力すると、▼モードを抜け、その見出し語 と送り仮名を現在のバッファに挿入し、▽モードに入ります。

 
N a K u

------ Buffer: foo ------
▼泣く
------ Buffer: foo ------

C-g

------ Buffer: foo ------
▽なく
------ Buffer: foo ------

ユーザ変数: skk-delete-okuri-when-quit

この変数の値を non-nil に設定すると、送りありの変換中に C-g を入力したときの挙動が変化します。▽モードに入るのは同じですが、同時に 送り仮名を消します。送り仮名の入力間違いを修正するのには便利です。 例えば、以下のようになります。

 
N a K u

------ Buffer: foo ------
▼泣く
------ Buffer: foo ------

C-g

------ Buffer: foo ------
▽な
------ Buffer: foo ------



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.9 変換位置の指定方法

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CA%D1%B4%B9%B0%CC%C3%D6%A4%CE%BB%D8%C4%EA%CA%FD%CB%A1"
"skk/変換位置の指定方法"へのコメント(無し)

SKK では通常、漢字変換の開始および送り仮名開始の位置を大文字で指定します が、これを任意のキーで指定することで sticky-shift ライクな操作 (53)も可能です。

 
(setq skk-sticky-key ";")

と設定すると ; キーで変換位置が指定できるようになります。 (54)例えば `有る' が

 
; a ; r u

でも入力でき、シフトキーを押す必要がなくなります。操作上は See 節 Q.3-4 左手の小指を SHIFT で酷使したくありません。 などにある通 常の sticky-shift と変わりませんが、画面表示は

 

        
打鍵 通常の@tie{}sticky skk-sticky
; 変化なし
a ▽あ ▽あ
; ▽あ ▽あ*
r ▽あ*r ▽あ*r

と遷移します。skk-sticky は ; を押した時点で表示が変化するので若干 分かり易くなるかと思います。

キーの設定方法は割当てるキーの種類によって異なります。

  1. 表示可能なキー

    `;' などの表示が可能なキーの場合は

     
    (setq skk-sticky-key ";")
    

    のように string を設定して下さい。skk-sticky-key に設定した 文字そのものを入力したい場合は2回続けて打つと入力できます。

  2. 表示されないキー

    無変換 のような表示を伴わないキーの場合は

     
    (setq skk-sticky-key [muhenkan])   ; Windows 環境ならば [noconvert]
    

    のようにそのキーを表わす vector を設定して下さい。

  3. 同時打鍵

    2つのキーを同時に打鍵することでも変換位置を指定できます。例えば fj の同時打鍵で指定する場合は

     
    (setq skk-sticky-key '(?f ?j))
    

    のように character のリストを設定して下さい。

    Dvorak 配列のような、押しやすい場所に適当なキーがない環境でもこの機能を使 いたい場合に便利かもしれません。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.6.10 1回の取り消し操作(undo)の対象

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=1%B2%F3%A4%CE%BC%E8%A4%EA%BE%C3%A4%B7%C1%E0%BA%EE%28undo%29%A4%CE%C2%D0%BE%DD"
"skk/1回の取り消し操作(undo)の対象"へのコメント(無し)

Emacs では本来、連続する 20 文字の挿入が一回の取り消し操作 (アンドゥ) の 対象となっています。そこで DDSKK のかな・カナ・全英モードにおける入力も、 これと同様の動作をするように設計されています (55)。正確に言えば、 skk-insert, skk-set-henkan-point, skk-jisx0208-latin-insert (56)の各関数にバインドされたキー入力について は、連続して入力された 20 文字を 1 つのアンドゥの対象としています (57)

ただし、これらの DDSKK のコマンドと Emacs 本来の self-insert-command を織り混ぜてキー入力した場合 (58)は、このエミュレーションは正常に動作しませんが、こ れは現在の仕様です。

 
a i u e o k a k i k u k e k o s a s i s u s e s o t a t i t u t e t o

------------------------- Buffer: foo -------------------------
あいうえおかきくけこさしすせそたちつてと ;連続する20文字。
------------------------- Buffer: foo -------------------------

C-_

------------------------- Buffer: foo -------------------------
                       ;20文字全てがアンドゥの対象となる。
------------------------- Buffer: foo -------------------------

a i u e o k a k i k u k e k o s a s i s u s e s o t a t i t u t e t o n a

-------------------------- Buffer: foo --------------------------
あいうえおかきくけこさしすせそたちつてとな ;連続する21文字。
-------------------------- Buffer: foo --------------------------

C-_

-------------------------- Buffer: foo --------------------------
あいうえおかきくけこさしすせそたちつてと ;最後の1文字のみがアンドゥの対象となる。
-------------------------- Buffer: foo --------------------------



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.7 変換、確定の前後

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CA%D1%B4%B9%A1%A2%B3%CE%C4%EA%A4%CE%C1%B0%B8%E5"
"skk/変換、確定の前後"へのコメント(無し)

5.7.1 ポイントを戻して▽モードへ   
5.7.2 直前の確定を再変換   
5.7.3 自動変換開始    SPC を押さなくても「を」「。」で変換開始。
5.7.4 暗黙の確定のタイミング   
5.7.5 積極的な確定   
5.7.6 確定辞書   

関連事項: 5.8.4 送りあり変換の変換開始のタイミング5.6.9 変換位置の指定方法 (大文字以外で変換位置を指定する方法を説明)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.7.1 ポイントを戻して▽モードへ

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%DD%A5%A4%A5%F3%A5%C8%A4%F2%CC%E1%A4%B7%A4%C6%A2%A6%A5%E2%A1%BC%A5%C9%A4%D8"
"skk/ポイントを戻して▽モードへ"へのコメント(無し)

▽モードに入り忘れた場合に、手動で▽マークを付ける方法については、前述しました。 (59) ここで述べる方法では、 さかのぼって▽マークを付ける位置を自動的に選び、しかもカーソルは動きません。

M-Q (大文字の `Q' です。) とタイプすると現在位置の直前の文字列について走査し、 同種の文字 (60)が続く限り後方に戻り、▽マークを付けます。ポイントは動きません。

(61)

 
k a n j i

------ Buffer: foo ------
かんじ-!-
------ Buffer: foo ------

M-Q

------ Buffer: foo ------
▽かんじ-!-
------ Buffer: foo ------

変換開始位置を決定するとき、スペース文字、タブ文字、長音を表わす `' は無条件に無視されます。ただし、ひらがなの場合は `' が、カタカナ の場合は `' が見つかった時点で変換開始位置の走査を止め、▽モードに 入ります。変換開始ポイントを `'、`' の直前で止めるのは、たい ていその直後から単語が始まるからです。

以上は M-Q を引数を与えないで実行した場合です。一方で、C-u 5 M-Q のように引数を渡して実行すると、変換開始位置から現在位置までの文字 数を指定することができます。この場合は文字種別を問わず、与えられた文字数 だけ無条件にポイントを戻します。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.7.2 直前の確定を再変換

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C4%BE%C1%B0%A4%CE%B3%CE%C4%EA%A4%F2%BA%C6%CA%D1%B4%B9"
"skk/直前の確定を再変換"へのコメント(無し)

一番最後に行った変換についての確定を取り消して、再変換を行うことがで きます。これを「確定アンドゥ」と呼びます。

例えば、辞書エントリが

 
こうこう /高校/孝行/航行/

のようになっているとします。

 
K o u k o u SPC

------ Buffer: foo ------
▼高校
------ Buffer: foo ------

s u r u

------ Buffer: foo ------
高校する-!-
------ Buffer: foo ------

M-x skk-undo-kakutei

------ Buffer: foo ------
▼孝行-!-する
------ Buffer: foo ------

この例では、`高校' の確定について取り消しています。すると、辞書の第 一候補である `高校' をとばして、次候補である `孝行' が現れます。 ここで更に SPC を押せば次候補である `航行' が現れ、更にもう一 度 SPC を押せば辞書登録モードに入ります。

この例に見られるように、確定アンドゥは、確定した直後でなくとも有効です。 より正確には、次の新たな確定 (62)を行うまでは確定に関する情報が保持されている ので、確定アンドゥすることができます。

また、変換、確定に関連しない文字列は、確定アンドゥを行っても削除されな いように設計されています。上記の例では、`する' がそのままカレントバッ ファに残っています。

ユーザ変数: skk-undo-kakutei-return-previous-point

この値が non-nil であれば確定アンドゥ後に以前の位置にカーソルが戻 ります。

上の例の場合、確定した後のカーソル位置はデフォルトでは `孝行' の直後 のままですが、non-nil であれば `する' の直後に復帰します。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.7.3 自動変換開始

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AB%C6%B0%CA%D1%B4%B9%B3%AB%BB%CF"
"skk/自動変換開始"へのコメント(無し)

▽モードで見出し語の入力中に、「を」や「。」などの文字を 打鍵すると、(63)SPC を押したかのように変換を開始し、▼モードに入るようになって います。(64)

 
K a n j i

------ Buffer: foo ------
▽かんじ
------ Buffer: foo ------

w o
------ Buffer: foo ------
▼漢字を
------ Buffer: foo ------

変数 skk-auto-okuri-process の値を non-nil に設定して 送り 仮名の自動処理 (see 節 5.8.3 送り仮名の自動処理) を行っている場合は、以下 のような変換も可能です。ただし、個人辞書に `できr /出来/[る/出来/]/' というようなエントリがあると仮定します。

 
D e k i r u n n d e s u

------ Buffer: foo ------
▽できるんです
------ Buffer: foo ------

.
------ Buffer: foo ------
▼出来るんです。
------ Buffer: foo ------

ユーザ変数: skk-auto-start-henkan-keyword-list

この変数の値は、単語や文節の区切りとなるような文字列のリストです。 既定値は以下のようになっています。

 
("を" "、" "。" "." "," "?" "」" "!" ";" ":" ")" ";"
 ":" ")" "”" "】" "』" "》" "〉" "}" "]" "〕" "}"
 "]" "?" "." "," "!" )

ユーザ変数: skk-auto-start-henkan

この変数の値を nil に設定すると、本節で説明した自動変換開始機能 を無効にします。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.7.4 暗黙の確定のタイミング

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B0%C5%CC%DB%A4%CE%B3%CE%C4%EA%A4%CE%A5%BF%A5%A4%A5%DF%A5%F3%A5%B0"
"skk/暗黙の確定のタイミング"へのコメント(無し)

標準の設定では、確定が済む前に次の文字を入力すると、 直ちに確定されます。 (65) これを「暗黙の確定」と呼んでいます。具体的には以下のようになります。

 
K a k u t e i

------ Buffer: foo ------
▽かくてい
------ Buffer: foo ------

SPC

------ Buffer: foo ------
▼確定
------ Buffer: foo ------

s

------ Buffer: foo ------
確定s
------ Buffer: foo ------

u

------ Buffer: foo ------
確定す
------ Buffer: foo ------

ユーザ変数: skk-kakutei-early

この変数の値を nil にすると、暗黙の確定を遅らせます。 具体的には、括弧 ((, ), [, ]) また は句読点 (,, .) の入力時、次の変換開始 (A から Z までの大文字の入力) 時、あるいは RET 入力時まで暗黙の確定が遅延 されます (66)

 
K a k u t e i

------ Buffer: foo ------
▽かくてい
------ Buffer: foo ------

SPC

------ Buffer: foo ------
▼確定
------ Buffer: foo ------

s

------ Buffer: foo ------
▼確定s
------ Buffer: foo ------

u r u

------ Buffer: foo ------
▼確定する
------ Buffer: foo ------

.

------ Buffer: foo ------
確定する。
------ Buffer: foo ------



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.7.5 積極的な確定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C0%D1%B6%CB%C5%AA%A4%CA%B3%CE%C4%EA"
"skk/積極的な確定"へのコメント(無し)

変換候補が一つしか見つからない場合は自動的に確定する、という設定ができます。

ユーザ変数: skk-kakutei-when-unique-candidate

この値が non-nil の場合、この機能が有効になります。

t であれば送りあり変換、送りなし変換、abbrev モードでの変換、全て でこの機能が有効になります。

また、`okuri-ari', `okuri-nasi', `abbrev' を要素とするリス トであることもできます。その場合は変換対象がその条件に合致した場合のみ確 定変換が機能します。例: `'(okuri-nasi abbrev)'

ユーザ変数: skk-kakutei-search-prog-limit

この機能は、全ての辞書を検索して、候補が唯一かどうかを調べます。そのため、 skk-search-prog-list の内容によってはレスポンスが悪くなる可能性が あります。(see 節 5.10.3 辞書の検索方法の設定

この値が数値であった場合、検索対象を skk-search-prog-list の先頭か ら数えてこの個数までの辞書に制限します。

それ以外であれば無制限に全ての辞書を検索対象とします。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.7.6 確定辞書

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B3%CE%C4%EA%BC%AD%BD%F1"
"skk/確定辞書"へのコメント(無し)

特定の語は、変換したら即座に確定させる事ができます。これを確定変換と呼び、 利用するには「確定辞書」を用意します。例えば、

 
じしょ /辞書/

というエントリが確定辞書にあったとします。このとき、

 
Z i s h o

------ Buffer: foo ------
▽じしょ
------ Buffer: foo ------

SPC

------ Buffer: foo ------
辞書
------ Buffer: foo ------

のように、SPC を押しただけでいきなり確定します。

確定辞書に登録された同音異義語を得るには、確定直後に x をタイプしま す。すると、▼モードに戻り次の候補を検索することができます。

次の例では、確定辞書に `辞書'、個人辞書か共有辞書に `自署' が 登録されているとします。

 
Z i s y o SPC

------ Buffer: foo ------
辞書
------ Buffer: foo ------

x

------ Buffer: foo ------
▼自署
------ Buffer: foo ------

確定辞書の単語は、優先的に変換されます。

ユーザ変数: skk-kakutei-jisyo

確定変換用の辞書ファイルを指定します。 この辞書は、標準の配布パッケージには含まれていないので、使用するのであれ ばユーザ側で用意する必要があります。(see 節 5.10.5 辞書の書式)

nil であれば、確定変換はされません。

(67)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.8 送り仮名関連

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C1%F7%A4%EA%B2%BE%CC%BE%B4%D8%CF%A2"
"skk/送り仮名関連"へのコメント(無し)

SKK の送り仮名の処理は、好みが分かれるところです。色々な 対策が用意されていますので、試して見て下さい。

5.8.1 送り仮名の厳密なマッチ    「多きい」対策、その 1
5.8.2 送り仮名の優先的なマッチ    「多きい」対策、その 2
5.8.3 送り仮名の自動処理    送り仮名があっても、後から SPC
5.8.4 送りあり変換の変換開始のタイミング   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.8.1 送り仮名の厳密なマッチ

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C1%F7%A4%EA%B2%BE%CC%BE%A4%CE%B8%B7%CC%A9%A4%CA%A5%DE%A5%C3%A5%C1"
"skk/送り仮名の厳密なマッチ"へのコメント(無し)

今、個人辞書に

 
おおk /大/多/[く/多/]/[き/大/]/

という送りありエントリがあると仮定します。

ここで O o K i i SPC と入力した場合、普通は `大きい' と `多きい' という 2 通りの候補が出力されますが、このうち `多きい' は現代の日本語として正しくありません。このような場合に、出力される候補を 正しい表現のみに絞りこむ方法について、説明します。

ユーザ変数: skk-henkan-okuri-strictly

この変数の値を non-nil に設定すると、見出し語がマッチするかどう かのチェックの上に、送り仮名がマッチするかどうかのチェックが行われま す。結果として送り仮名がマッチしない候補は出力されません。上記の例では、 送り仮名 `' がマッチする `大きい' は出力されますが、 `多きい' は出力されません (68)

個人辞書の送りありエントリが充実していれば、標準の設定よりも候補が絞り込 まれるので変換効率がアップしますが、さもなければ、すぐに辞書登録モードに 入ってしまうため逆に不便になります。

変数 skk-henkan-okuri-strictly の値を non-nil にすると、 辞書登録モードに入っても送り仮名のマッチが厳密に行われます。これは辞 書登録の際希望する候補を得るためには障害となります。そのような障害を避 けるためには、下記のようにフック変数を設定します。これにより、辞書登録 時だけは、一時的に送り仮名の厳密なマッチをしないようになります (69)

 
(add-hook 'minibuffer-setup-hook
          #'(lambda ()
              (when (and (boundp 'skk-henkan-okuri-strictly)
                         skk-henkan-okuri-strictly
                         (not (eq last-command 'skk-purge-jisyo)))
                (setq skk-henkan-okuri-strictly nil)
                (put 'skk-henkan-okuri-strictly 'temporary-nil t))))

(add-hook 'minibuffer-exit-hook
          #'(lambda ()
              (when (and (get 'skk-henkan-okuri-strictly 'temporary-nil)
                         (<= (minibuffer-depth) 1))
                (put 'skk-henkan-okuri-strictly 'temporary-nil nil)
                (setq skk-henkan-okuri-strictly t))))



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.8.2 送り仮名の優先的なマッチ

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C1%F7%A4%EA%B2%BE%CC%BE%A4%CE%CD%A5%C0%E8%C5%AA%A4%CA%A5%DE%A5%C3%A5%C1"
"skk/送り仮名の優先的なマッチ"へのコメント(無し)

5.8.1 送り仮名の厳密なマッチ では、見出し語と送り仮名が一致した場合のみ 候補を表示します。ここでは、その条件を緩めて優先的に表示する方法を紹介し ます(70)

今、個人辞書に

 
おおk /大/多/[く/多/]/[き/大/]/

という送りありエントリがあると仮定します。

ここで O o K i i SPC と入力した場合、普通は `大きい' と `多きい' という 2 通りの候補が出力されますが、このうち `多きい' は現代の日本語として正しくありません。このような場合に、出力される候補を 正しい表現が優先的にする設定を紹介します。

ユーザ変数: skk-henkan-strict-okuri-precedence

この変数の値を non-nil に設定すると、見出し語と送り仮名がマッチ した候補を優先して表示します。

上記の例では `▽おお*く' を変換したとき、まず `多く' を出力し、 次に `大く' を出力します。

この変数の値が non-nil の時は、変数 skk-process-okuri-early の値は nil でなければなりません (71)。また変数 skk-henkan-okuri-strictlynon-nil のときは、この変数は無視されます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.8.3 送り仮名の自動処理

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C1%F7%A4%EA%B2%BE%CC%BE%A4%CE%BC%AB%C6%B0%BD%E8%CD%FD"
"skk/送り仮名の自動処理"へのコメント(無し)

「あげる」と入力してから、SPC を押しても、「上げる」と変換する 機能を、この節では紹介します。

5.8.3.1 どのように変換されるか   
5.8.3.2 辞書登録の際に注意すべきこと   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.8.3.1 どのように変換されるか

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A4%C9%A4%CE%A4%E8%A4%A6%A4%CB%CA%D1%B4%B9%A4%B5%A4%EC%A4%EB%A4%AB"
"skk/どのように変換されるか"へのコメント(無し)

skk-auto-okuri-process

この変数の値を non-nil に設定すると、送り仮名の自動処理が行わ れます。

例えば、T a t i a g e r u SPC と入力した場合を考えます。 このとき、検索される見出し語の変化を追うと、

 
`たちあげる' => `たちあげr' => `たちあg'
=> `たちa' => `たt'

のようになります。仮に個人辞書エントリが、

 
たちあg /立ち上/[げ/立ち上/]/[が/立ち上/]/
たt /建/断/経/立/[つ/建/断/経/立/]/[ち/建/断/経/立/]/[て/経/立/建/]/

の 2 つのエントリを含むとすると、見出し語を後方から順に切り詰める過程で `たちあg' と `たt' の 2 つの見出し語の検索時にこれらの辞書エン トリがマッチします。

つまり、`たちあげる' という見出し語に対し、見出し語を最後尾から1文 字づつ切り詰め、「切り詰めの結果残った文字列」と、「切り捨てられた先頭の 文字のローマ字プレフィックス」を連結した文字列を送りあり変換の見出し語と して、 検索します。(72)

次に、マッチしたエントリの各候補に対し、切り捨てられた先頭の文字を送り仮 名として取るかどうかをチェックします。この判断には、個人辞書の送り仮名ブロッ ク部分 (73)を利用します。

`たちあg' の場合の送り仮名チェックの対象は、切り捨てられた最初の文 字の `' です。個人辞書に

 
[げ/立ち上/]

の部分があることから、送り仮名として取るべきと判断します。また、`た t' の場合の送り仮名チェックの対象は、`' です。個人辞書に

 
[ち/建/断/経/立/]

の部分があることから、送り仮名として取るべきと判断します。

こうして、送り仮名がマッチする候補が `立ち上'、`'、`'、 `'、`' の 5 つに絞られます。これらは文字列の長さ順に昇順に ソートされ (74)、それぞれの候補と該当の見出し語から切り捨てら れた文字列と連結したもの (75)を、送り仮名の自動処理の最終候補として返します。上 記の例は、`立ち上げる'、`建ちあげる'、`断ちあげる'、 `経ちあげる'、`立ちあげる' の 5 つが最終候補になります。

自動送り機能は、個人辞書のみを検索します。

ここで、自動送り機能の長所を考えてみると、

などがあります。一方短所としては、

などが考えられます。変数 skk-auto-okuri-process の値を non-nil に設定しても、従来通りの送りあり変換も同時にできますから、 一度この機能を試してみることをお勧めします (76)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.8.3.2 辞書登録の際に注意すべきこと

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AD%BD%F1%C5%D0%CF%BF%A4%CE%BA%DD%A4%CB%C3%ED%B0%D5%A4%B9%A4%D9%A4%AD%A4%B3%A4%C8"
"skk/辞書登録の際に注意すべきこと"へのコメント(無し)

送り仮名の自動処理を行っている場合(77)に は、辞書登録の際に注意すべきことがあります。

個人辞書に見出し語 `わたs' についてのエントリが全くない場合、あるい は個人辞書のエントリが

 
わたs /渡/[し/渡/]/

のような送り仮名のブロックを持たない場合を考えてみます。ここで、W a t a s i t a SPCと入力すると、送り仮名の自動処理においては送り仮名 がマッチしないので、候補が見つからずに辞書登録モードに入ります。

 
W a t a s i t a SPC

------ Buffer: foo ------
▼わたした
------ Buffer: foo ------

------ Minibuffer -------
[辞書登録] わたした-!-
------ Minibuffer -------

辞書登録モードで W a t a S i t a RET と送り仮名を明示的に入 力し、`渡した' と変換して登録したとします。この場合、登録する語の最 後が平仮名で終わるので、その最後の平仮名の文字列 (上記の例では、`し た') が見出し語の最後と一致するかを調べます。一致する場合には、辞書の登 録を送りありエントリとして行うのかどうかの確認を求めます。

 
W a t a S i t a
------ Minibuffer -------
[辞書登録] わたした 渡した-!-
------ Minibuffer -------

RET

-------------------------- Echo Area --------------------------
Shall I register this as okuri-ari word: わたs /渡/ ? (y or n)
-------------------------- Echo Area --------------------------

この確認に対し、`y' と回答した場合は、

 
わたs /渡/[し/渡/]/

という辞書エントリが個人辞書の送りありエントリに書き込まれます。一方 `n' と回答した場合は、個人辞書の送りなしエントリに

 
わたした /渡した/

というエントリが書き込まれます。本例の場合は、`y' と回答するのが正 解です。

skk-kana-rom-vector

この変数は、送り仮名部分をローマ字プレフィックスに分解する際に、参照され ます。

変数 skk-kana-rom-vector の既定値は以下のようになっています。

 
["x" "a" "x" "i" "x" "u" "x" "e" "x" "o" "k" "g" "k" "g" "k" "g"
 "k" "g" "k" "g" "s" "z" "s" "j" "s" "z" "s" "z" "s" "z" "t" "d"
 "t" "d" "x" "t" "d" "t" "d" "t" "d" "n" "n" "n" "n" "n" "h" "b"
 "p" "h" "b" "p" "h" "b" "p" "h" "b" "p" "h" "b" "p" "m" "m" "m"
 "m" "m" "x" "y" "x" "y" "x" "y" "r" "r" "r" "r" "r" "x" "w" "x"
 "x" "w" "n"]

このベクトルは、それぞれ下記のかな文字をそのローマ字プレフィックスで現し たものです。

 
ぁ  あ  ぃ  い  ぅ  う  ぇ  え  ぉ  お  か  が  き  ぎ  く  ぐ
け  げ  こ  ご  さ  ざ  し  じ  す  ず  せ  ぜ  そ  ぞ  た  だ
ち  ぢ  っ  つ  づ  て  で  と  ど  な  に  ぬ  ね  の  は  ば
ぱ  ひ  び  ぴ  ふ  ぶ  ぷ  へ  べ  ぺ  ほ  ぼ  ぽ  ま  み  む
め  も  ゃ  や  ゅ  ゆ  ょ  よ  ら  り  る  れ  ろ  ゎ  わ  ゐ
ゑ  を  ん

これに従うと、見出し語中の送り仮名がローマ字プレフィックスに分解される際、 例えば `' は `j' に、`' は `t' に、`' は `h' に、それぞれ分解されます。これらをそれぞれ `z'、`c'、 `f' に変更することもできます。それには変数 skk-kana-rom-vector の該当部分を "z"、"c"、"f" に変更します。

 
(setq skk-rom-kana-vector
      ["x" "a" "x" "i" "x" "u" "x" "e" "x" "o" "k" "g" "k" "g" "k" "g"
       "k" "g" "k" "g" "s" "z" "s" "z" "s" "z" "s" "z" "s" "z" "t" "d"
       "c" "d" "x" "t" "d" "t" "d" "t" "d" "n" "n" "n" "n" "n" "h" "b"
       "p" "h" "b" "p" "f" "b" "p" "h" "b" "p" "h" "b" "p" "m" "m" "m"
       "m" "m" "x" "y" "x" "y" "x" "y" "r" "r" "r" "r" "r" "x" "w" "x"
       "x" "w" "n"])

次にもうひとつ例を挙げます。 `ありがさつき' に対し `有賀さつき' を登録したい場合は、上記と同様に辞書登録をし、

 
Shall I register this as okuri-ari entry: ありがs /有賀/ ? (y or n)

の確認に対し `n' と回答します。この結果、個人辞書の送りなしエントリ には、

 
ありがさつき /有賀さつき/

というエントリが書き込まれます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.8.4 送りあり変換の変換開始のタイミング

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C1%F7%A4%EA%A4%A2%A4%EA%CA%D1%B4%B9%A4%CE%CA%D1%B4%B9%B3%AB%BB%CF%A4%CE%A5%BF%A5%A4%A5%DF%A5%F3%A5%B0"
"skk/送りあり変換の変換開始のタイミング"へのコメント(無し)

skk-process-okuri-early

この変数の値を non-nil に設定すると、送りあり変換の変換開始のタ イミングが早められます。つまり、送り仮名のローマ字プレフィックスの入力 時点で変換を開始します。

 
U g o K

------ Buffer: foo ------
▼動k
------ Buffer: foo ------

送り仮名が分からないまま変換しているため、個人辞書が送り仮名に対応した形に 成長しません。つまり `うごk /動/' のような形態のままとなります。た だし、

 
うごk /動/[く/動/]/[か/動/]/[け/動/]/[き/動/]/[こ/動/]/

のようなエントリが既に個人辞書にある場合、それを破壊することはありません (78)

このユーザオプションを non-nil に設定して SKK モードを起動する と、両立できないオプションである下記オプションは自動的に nil に 設定されます。

 
skk-kakutei-early, 
skk-auto-okuri-process, skk-henkan-okuri-strictly

既に SKK モードに入った後で この変数の設定を変更した場合は、カレントバッ ファで C-x C-j もしくは C-x j を 2 回タイプして SKK モードを 起動し直すことで、これらの変数間の衝突を調整します。

 
See 節 skk-kakutei-early.
See 節 skk-auto-okuri-process.
See 節 skk-henkan-okuri-strictly.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.9 候補の順序

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B8%F5%CA%E4%A4%CE%BD%E7%BD%F8"
"skk/候補の順序"へのコメント(無し)

skk の初期設定では、変換、確定された語が、次回の変換では最初に表示されます。 これを変更して、効率良く変換する方法があります。

5.9.1 変換の学習   
5.9.2 候補の順序の固定   

ベイズ統計を用いた学習のプログラム `skk-bayesian.el' もあります。 See 節 5.1 ファイル構成

確定辞書 (see 節 5.7.6 確定辞書) を用いた変換も、候補の順序に影響を与えます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.9.1 変換の学習

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CA%D1%B4%B9%A4%CE%B3%D8%BD%AC"
"skk/変換の学習"へのコメント(無し)

`skk-study.el' は、ある語 A を確定した場合に、A 及びその見出し 語 A' に対して、直前に変換した語 B とその見出し語 B' を関連語として登 録しておき、再度見出し語 A' の変換を行ったときに、B 及び B' のペアが直 前の何回かに確定した語の中に見つかれば、A を優先して出力する単純な学習 効果を提供するプログラムです。

`~/.skk' に (require 'skk-study) と書いて DDSKK を起動して下 さい。以降変換についての学習を始めます。

例えば、`梅雨には雨が降る' と変換した場合、

  1. `' (`あめ') の関連語は `梅雨' (`つゆ')、

  2. `降る' (`ふr') の関連語は `' (`あめ')、

という風に直前に確定した語を関連語として、語と語の関連性を学習します。

ここで続けて、`傘を振る' と変換すると、個人辞書がアップデートされ てしまい、見出し語 `ふr' の第一候補は `振る' になってしまい ます。

しかし、更に続けて Ame SPC gaHuRu と type すると、 HuRu (`ふr') に対して `' (`あめ') が関 連語になっているため、`ふr' と対で記憶されている `降る' に変 換されるというわけです。

では、またここで `傘を振る' と変換し、個人辞書の第一候補が `振る' になった状態で、

 
Ame SPC gaTairyou SPC niHuRu

と変換すれば ふr はどう変換されるでしょうか? 今度は `' (`あめ') と ふr の間に `大量' (`たいりょう') が入っています (79) 実はちゃんと

 
`雨が大量に降る'

と変換されます。何故なら (`ふr') の関連語を探す際、 skk-study-search-times (80) に 指定された回数分だけ遡って、以前に確定した語の中に関連語がないか探すの です。従って、この場合だと、2 つ前の確定情報を探した際に `' (`あめ') 見つけ、これを関連語として、(`ふr') の値を 決めようとするのです。

`skk-study.el' に関するその他のオプションを説明します。

ユーザ変数: skk-study-max-distance
この変数には integer を指定します。直前に確定したポイントと今回の変換ポ イントがこの距離以上離れていると学習データを蓄積しないようにします。 この変数は、必ずしも文章がバッファの point-min か ら point-max へ流れるように書かれるものではなく、ポイントを前に戻 したり後へ移動したりして書かれることを想定しています。 この変数に integer を設定すると、直前の変換よりも前のポイントで変換した 場合に学習データを蓄積しないようにします。この変数に nil を指定す ると直前に確定したポイントとの距離を考慮せずに学習します。この変数のデフ ォルト値は 30 です。

なお、この変数の値にかかわらず、直前の変換バッファと現在変換を行っている バッファが異なる場合は学習データを蓄積しません。

ユーザ変数: skk-study-first-candidate
この変数が non-nil であれば、第一候補 で確定した際も学習します。nil であれば、第一候補で確定したとき のみ学習データを蓄積しません。学習データをできるだけ小さくしたい場合、 この変数を nil にすると効果があるかもしれません。 この変数のデフォルト値は t です。

ユーザ変数: skk-study-file
学習結果を保存するファイル名です。 この変数のデフォルト値は `~/.skk-study' です。 変数 skk-user-directory からも設定ができます。 (see 節 5.2.1 設定ファイル)

ユーザ変数: skk-study-backup-file
`~/.skk-study' のバックアップファイルです。 この変数のデフォルト値は `~/.skk-study.BAK' です。

ユーザ変数: skk-study-sort-saving
学習データのデータ構造に関するものです。この変数の値が non-nil で あれば学習結果をソートしてセーブします。この変数が影響を及ぼすのは学習デ ータの単なる見映えの問題だけです。 この変数のデフォルト値は nil です。

ユーザ変数: skk-study-check-alist-format
学習データのデータ構造に関するものです。この変数の値が non-nil で あれば、学習結果の読み込み時に連想リストのフォーマットをチェックします。 これは主に debug の目的で使います。 この変数のデフォルト値は nil です。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.9.2 候補の順序の固定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B8%F5%CA%E4%A4%CE%BD%E7%BD%F8%A4%CE%B8%C7%C4%EA"
"skk/候補の順序の固定"へのコメント(無し)

skk の初期設定では、変換、選択された候補は、次回の変換では最初に表示されます。 これに対し、毎回同じ順序で候補を表示させることができます。

ユーザ変数: skk-jisyo-fix-order

non-nil であれば、確定の際に個人辞書の同音語の順序を変更せず、 個人辞書に新規追加する際は既出語の後に追加する。

これは、個人辞書のエントリの中の、各候補の順序を変更しないことで、 実現されていますから、`skk-study.el' を用いた学習 (see 節 5.9.1 変換の学習) と併用できます。

skk-jisyo-fix-ordernon-nil の時、個人辞書の候補を手軽に並べ替 える方法は、現時点ではありません。個人辞書ファイルを直接編集するか、 コマンド M-x skk-edit-private-jisyo を実行して下さい。 (see 節 5.10.7 個人辞書ファイルの編集)

直前に変換したばかりの単語は、個人辞書の送りあり/なしエントリの一番上に ありますので、すぐに見つけることができます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10 辞書関連

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AD%BD%F1%B4%D8%CF%A2"
"skk/辞書関連"へのコメント(無し)

本節では、辞書の種別と形式、設定方法、その他辞書にまつわる動作や設定を説明しま す。

辞書の設定
5.10.1 辞書の種類   
5.10.2 辞書ファイルの指定   
5.10.3 辞書の検索方法の設定   
5.10.4 サーバ関連   


辞書の管理
5.10.5 辞書の書式   
5.10.6 誤った登録の削除   
5.10.7 個人辞書ファイルの編集   
5.10.8 個人辞書の保存動作   
5.10.9 変換及び個人辞書に関する統計   



5.10.10 辞書バッファ   
5.10.11 辞書バッファの文字コードの設定   
5.10.12 辞書バッファのbuffer-file-name   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.1 辞書の種類

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AD%BD%F1%A4%CE%BC%EF%CE%E0"
"skk/辞書の種類"へのコメント(無し)

個人辞書、skk-initial-search-jisyo, skk-kakutei-jisyo は Emacs のバッファに読み込んで検索を行います。共有辞書は設定により Emacs のバッファに読み込んで使用するか、または辞書サーバ経由で使用します。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.2 辞書ファイルの指定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AD%BD%F1%A5%D5%A5%A1%A5%A4%A5%EB%A4%CE%BB%D8%C4%EA"
"skk/辞書ファイルの指定"へのコメント(無し)

この節では、辞書ファイルを指定する変数を説明します。 個人辞書とバックアップのディレクトリは、変数 skk-user-directory でも 変更できます。(see 節 5.2.1 設定ファイル)

ユーザ変数: skk-kakutei-jisyo
確定変換(see 節 5.7.6 確定辞書)のための辞書です。一番最初に参照されます。 確定変換をしない時は、初期設定の nil のままで良いです。

ユーザ変数: skk-initial-search-jisyo
確定辞書の後、かつ、個人辞書の前に検索を行う辞書です。

この辞書を適当に指定することにより、最初に出てくる候 補を操作することができます。例えば、複数の専門用語毎の辞書を用意しておい て skk-initial-search-jisyo の値を切り替えることにより、専門分野 毎の専門用語を切り替えて入力することができます。

この辞書は、標準の配布パッケージには含まれていないので、使用するのであれ ばユーザ側で用意する必要があります。

不要ならば、初期設定の nil のままで良いです。

ユーザ変数: skk-jisyo
個人辞書。DDSKK を一番最初に起動したとき、変数 skk-jisyo が指すファ イルが存在しなければ自動的に作られます。

ユーザ変数: skk-backup-jisyo
個人辞書の予備 (バックアップ) です。検索の対象ではなく、あくまで個人辞書の バックアップとして指定してください。

ユーザ変数: skk-large-jisyo
共有辞書のひとつ。バッファに読み込んで検索を行います。

例えば skk-large-jisyo に S 辞書か M 辞書を指定し、 skk-aux-large-jisyo に L 辞書を指定する、という選択肢もあります。

また、辞書サーバ経由のアクセスも決して遅くはないので、共有辞書はバッファには 読み込まない、という設定も自然です。そのためには、skk-large-jisyonil に設定します。

ユーザ変数: skk-aux-large-jisyo
共有辞書のひとつ。辞書サーバに接続できない時にバッファに読み込んで検索を行う 辞書です。

これらの変数の意味するところは初期設定でのものですが、 skk-search-prog-list の設定で変更することもできます。 (see 節 5.10.3.2 辞書検索のための関数)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.3 辞書の検索方法の設定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AD%BD%F1%A4%CE%B8%A1%BA%F7%CA%FD%CB%A1%A4%CE%C0%DF%C4%EA"
"skk/辞書の検索方法の設定"へのコメント(無し)

辞書の検索方法の指定は、変数 skk-search-prog-list で行われます。 特に必要が無ければ、読み飛ばして下さい。

5.10.3.1 辞書検索の設定の具体例   
5.10.3.2 辞書検索のための関数   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.3.1 辞書検索の設定の具体例

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AD%BD%F1%B8%A1%BA%F7%A4%CE%C0%DF%C4%EA%A4%CE%B6%F1%C2%CE%CE%E3"
"skk/辞書検索の設定の具体例"へのコメント(無し)

この節では、skk-search-prog-list の具体例として DDSKK 14 での 初期設定を示し、大体の流れを説明します。

DDSKK では、複数の辞書を扱うことが可能です。複数の辞書が同時に 検索されるのではなく、指定した順番に検索します。 skk-search-prog-list はリストであり、大雑把に言えば、 確定されるまで、先頭の要素から順に lisp として評価されます。

 
((skk-search-kakutei-jisyo-file skk-kakutei-jisyo 10000 t)
 (skk-search-jisyo-file skk-initial-search-jisyo 10000 t)
 (skk-search-jisyo-file skk-jisyo 0 t)
 (skk-okuri-search)
 (skk-search-jisyo-file skk-large-jisyo 10000)
 (skk-search-server skk-aux-large-jisyo 10000))

この例では、

  1. skk-kakutei-jisyo (see 節 5.7.6 確定辞書), skk-initial-search-jisyo, skk-jisyo (個人辞書) の順に検索を 行い、

  2. 次に送り仮名の自動処理を行い、(see 節 5.8.3 送り仮名の自動処理)

  3. その後、skk-large-jisyo の検索を行い、

  4. 最後に skk-aux-large-jisyo に辞書サーバ経由でアクセスしています。

これらの辞書の意味については、See 節 5.10.2 辞書ファイルの指定

もし確定辞書で候補が見つかったらそのまま自動的に確定されます。1 回 SPC を押す動作に対し、プログラム側では新たな候補を見つけるまで上記 の動作を進めます。例えば、

  1. 確定辞書では候補は見つけられなかったが skk-initial-search-jisyo に候補がある場合、そこで一旦止まりユーザにその候補を表示します。

  2. 更に SPC が押されると、次は個人辞書を検索します。そこで候補が見つ かり、しかもその候補がskk-initial-search-jisyo で見つけた候補とは 異なるものであったときは、そこでまた一旦止まりその候補をユーザに表示し ます。

以降、共有辞書についても同様の繰り返しを行います。最後まで候補が 見つからなかった時は、辞書登録モードに入ります。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.3.2 辞書検索のための関数

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AD%BD%F1%B8%A1%BA%F7%A4%CE%A4%BF%A4%E1%A4%CE%B4%D8%BF%F4"
"skk/辞書検索のための関数"へのコメント(無し)

前節で見た通り、変数 skk-search-prog-list を適切に定義することによ って辞書の検索方法を指定します。 そこで使われる辞書検索のための関数を使いこなすことで、 より細かい辞書検索の方法を指定することができます。

Function: skk-search-jisyo-file FILE LIMIT &optional NOMSG
通常の検索を行うプログラム。変数 skk-henkan-key を見出し語として変換 検索を実施します。個人辞書、共有辞書又は辞書サーバを使わずに検索を行いたい 場合はこの関数を使用します。 FILE で指定した辞書ファイルは Emacs のバッファに読み込まれます。

第1引数 FILE は、検索対象となる辞書ファイルを指定します。 nil を指定したときは、検索を行いません。

第2引数 LIMIT は二分検索が行なわれる領域の大きさを指定します。 一つの見出し語に対する変換動作に対し、検索対象の領域の大きさが 第2引数に指定された大きさより小さくなるまでは二分検索が行われ、 最後に直線的検索が1回行われます。 第2引数に 0 を指定すると、常に直線的検索のみが行われます。 個人辞書に対しては LIMIT を 0 にして下さい。配列がソートされておらず 二分検索ができないからです。

第3引数 NOMSGnil ならば、辞書ファイルをバッファに 読み込む関数 skk-get-jisyo-buffer のメッセージをミニバッファに出力し ます。non-nil を与えると出力しません。

Function: skk-search-kakutei-jisyo-file FILE LIMIT &optional NOMSG
「確定変換」を行う検索プログラム。検索対象の辞書ファイルは Emacs の バッファに読み込まれます。検索対象のファイルから候補を見つけると、内部 変数 skk-kakutei-henkan-flag を立てて、いきなり確定します。このため ユーザーが確定する必要はありません。

引数の意味はいずれも skk-search-jisyo-file の場合と同様です。

See 節 5.7.6 確定辞書

Function: skk-okuri-search
形式: (skk-okuri-search)

自動送り処理を行うプログラム。変数 skk-auto-okuri-process の値 が non-nil のときだけ機能します。

個人辞書の送りありエントリを検索対象としているので、個人辞書のバッファを 流用します。そのため、専用の辞書バッファは作りません。

See 節 5.8.3 送り仮名の自動処理

Function: skk-search-server FILE LIMIT &optional NOMSG
辞書サーバ経由で検索するプログラム。

辞書サーバが使用不能になると辞書ファイルを Emacs のバッファに読み込んで 検索を行います。引数の意味はいずれも skk-search-jisyo-file と 同じですが、これらは辞書を Emacs のバッファに読み込んだときのみ利用されます。

辞書サーバが使う辞書ファイルの設定については、 See 節 3.4 辞書サーバを使いたいときの設定 および See 節 5.10.4 サーバ関連 を ご覧下さい。

Function: skk-search-small-dic
形式: (skk-search-small-dic)

コンパイル時に指定された辞書を検索します。(see 節 2.2 DDSKK のインストール)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.4 サーバ関連

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%B5%A1%BC%A5%D0%B4%D8%CF%A2"
"skk/サーバ関連"へのコメント(無し)

辞書サーバの基本的な設定は、See 節 3.4 辞書サーバを使いたいときの設定 を ご覧下さい。

ユーザ変数: skk-servers-list

この変数を使うと、複数のホスト上の辞書サーバを使い分けることができます。

この変数の値は、辞書サーバ毎の情報リストです。各リストは 4 つの要素か ら成ります。4 つの要素はそれぞれ、ホスト名、辞書サーバ名 (フルパス)、辞書サーバ が読みこむ辞書ファイル名、辞書サーバが使用するポート番号、となります。ただし、辞書、 およびポート番号は、辞書サーバ自身が決定することもあるため、そのような場合は nil として構いません。

例えば、以下のように設定します。

 
(setq skk-servers-list
      '(("host1" "/your/path/to/skkserv" nil nil)
        ("host2" "/your/path/to/skkserv" nil nil)))

上記の設定の場合、まず host1 上の辞書サーバと接続します。接続できなくなると、 次に host2 上の辞書サーバと接続します。

ユーザ変数: skk-server-report-response

この変数の値が non-nil であれば、変換時に、辞書サーバの送出する文字を 受け取るまでに関数 accept-process-output が実行された回数を報告 します。

ユーザ変数: skk-server-inhibit-startup-server

この変数を nil に設定すると、辞書サーバと接続できない場合に、 辞書サーバプログラムを call-process して立ち上げようと試みます (デフォルト値は t です)。inetd 経由で立ち上げられる多くの辞書 サーバは、call-process で立ち上げることができませんが、 `skkserv' のように立ち上げることができる辞書サーバを利用している場合 には、この変数を nil に設定するのが良いかもしれません。

ユーザ変数: skk-server-remote-shell-program

この変数には、リモートシェルのプログラム名を指定します。既定値は、システ ム依存性を考慮する必要があるため、以下の Emacs Lisp コードを評価すること により決定されています。

 
(or (getenv "REMOTESHELL")
    (and (boundp 'remote-shell-program) remote-shell-program)
    (cond
     ((eq system-type 'berkeley-unix)
      (if (file-exists-p "/usr/ucb/rsh") "/usr/ucb/rsh" "/usr/bin/rsh"))
     ((eq system-type 'usg-unix-v)
      (if (file-exists-p "/usr/ucb/remsh") "/usr/ucb/remsh" "/bin/rsh"))
     ((eq system-type 'hpux) "/usr/bin/remsh")
     ((eq system-type 'EWS-UX/V) "/usr/ucb/remsh")
     ((eq system-type 'pcux) "/usr/bin/rcmd")
     (t "rsh")))



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.5 辞書の書式

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AD%BD%F1%A4%CE%BD%F1%BC%B0"
"skk/辞書の書式"へのコメント(無し)

5.10.5.1 送りありエントリと送りなしエントリ   
5.10.5.2 送りありエントリのブロック形式   
5.10.5.3 エントリの配列   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.5.1 送りありエントリと送りなしエントリ

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C1%F7%A4%EA%A4%A2%A4%EA%A5%A8%A5%F3%A5%C8%A5%EA%A4%C8%C1%F7%A4%EA%A4%CA%A4%B7%A5%A8%A5%F3%A5%C8%A5%EA"
"skk/送りありエントリと送りなしエントリ"へのコメント(無し)

以下は個人辞書の一例です。

 
;; okuri-ari entries.
たとe /例/[え/例/]/
もt /持/[つ/持/]/[って/持/]/[た/持/]/[て/持/]/[ち/持/]/[と/持/]/
たすk /助/[け/助/]/
うごk /動/[く/動/]/[か/動/]/[け/動/]/[き/動/]/[こ/動/]/
ふくm /含/[め/含/]/[む/含/]/[ま/含/]/[み/含/]/[も/含/]/
...
;; okuri-nasi entries.
てん /点/・/天/
ひつよう /必要/
さくじょ /削除/
へんこう /変更/
じゅんじょ /順序/
ぐん /群/郡/
こうほ /候補/
いち /位置/一/壱/
...

`てん /点/・/天/' を例にして説明します。これは `てん' が見出し 語であり、その候補が、`'、`'、`' です。候補はそれぞ れ、`/' によって区切られています。SKK では、見出し語と候補群を合わ せた `てん /点/・/天/' の一行を「エントリ」と呼びます。

辞書は単純なテキストファイルで、必ず下記の 2 つの行を持っています。

 
;; okuri-ari entries.
;; okuri-nasi entries.

この 2 つの行は、それぞれ送り仮名あり、送り仮名なしのエントリの開始地点 を示すマークです。 `;; okuri-ari entries.' までの行で `;' を行 頭に持つ行はコメント行として無視されます。`;; okuri-ari entries.' 以降にコメント行を含むことはできません。

`;; okuri-ari entries.' と `;; okuri-nasi entries.' の 間に囲まれた上半分の部分が送り仮名ありのエントリです。これを「送りあ りエントリ」と呼びます。 `;; okuri-nasi entries.'以下の下半分部分が送り仮名なしのエント リです。これを「送りなしエントリ」と呼びます。

送りありエントリを検索する変換を「送りあり変換」、送りなしエントリを 検索する変換を「送りなし変換」と呼びます。SKK では送り仮名の有無が変 換方法の 1 つの種別となっています。送り仮名がある変換では送りありエント リのみが検索され、送り仮名がない変換では送りなしエントリのみが検索されま す。

1 つの見出し語についてのエントリは 1 行内に書かれます。2 行以上にまたが ることはできません。改行を含む候補については、(concat "改\n行") のように、評価すると改行を該当個所に挿入するような Lisp プログラム (see 節 5.5.7 プログラム実行変換) に候補を変換して辞書に収めています。

送りありエントリは、基本的には `もt /持/' のようになっています。送 り仮名部分は、送り仮名をローマ字表現したときの 1 文字目 (81)で表現されています。 この 1 エントリで `持た'、`持ち'、`持つ'、`持て'、 `持と' の 5 つの候補に対応します。その 5 つの候補の送り仮名をローマ 字プレフィックスで表現すれば、いずれも `t' になります。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.5.2 送りありエントリのブロック形式

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C1%F7%A4%EA%A4%A2%A4%EA%A5%A8%A5%F3%A5%C8%A5%EA%A4%CE%A5%D6%A5%ED%A5%C3%A5%AF%B7%C1%BC%B0"
"skk/送りありエントリのブロック形式"へのコメント(無し)

個人辞書の送りありエントリには `[' と `]' に囲まれたブロックが あります。これは、そのブロックの先頭にある平仮名を送り仮名に取る候補群で す。

 
たとe /例/[え/例/]/
...
ふくm /含/[め/含/]/[む/含/]/[ま/含/]/[み/含/]/[も/含/]/

この例で見ると、見出し語 `たとe' の場合は `' を送り仮名とす る 1 つのブロックから構成されています。見出し語 `ふくm' の場合は、 `'、`'、`'、`'、`' を送り仮名とする 5 ブロックに分けられています。

この送り仮名毎のブロック部分は、skk-henkan-okuri-strictly あるい は skk-auto-okuri-process のいずれかの変数が non-nil で ある場合に使用されます。その場合、検索において、見出し語の一致に加えて、 更に送り仮名もマッチするかどうかをテストします。例えば、

 
おおk /大/多/[く/多/]/[き/大/]/

というエントリがあるとします。同じ見出し語 `おおk' であっても、送り 仮名が `' であれば、候補は `' のみで `' は無視されま す。 (82)

現在 http://openlab.jp/skk/dic.html で配布されている共有辞書では、 `[' と `]' を使用した送り仮名毎のブロックの形式に対応していません。 個人辞書のみがこの形式で書き込まれていきます。 skk-henkan-okuri-strictlynil であっても送り仮名のブロッ ク形式で書き込まれます。(83)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.5.3 エントリの配列

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%A8%A5%F3%A5%C8%A5%EA%A4%CE%C7%DB%CE%F3"
"skk/エントリの配列"へのコメント(無し)

共有辞書では、送りありエントリは `;; okuri-ari entries.' から順 に下方向に、見出し語をキーとして降順に配置されています。送りなしエントリ は、`;; okuri-nasi entries.' から順に下方向に、見出し語をキーと して昇順に配置されています。

降順、昇順に配置されているのは、辞書サイズが大きいことに配慮して二分検索 を行うためです。 (84)

一方個人辞書は、一番最後に変換された語が最も手前に置かれています。 つまり、送りなし、あり、それぞれのエントリが `;; okuri-ari entries.', `;; okuri-nasi entries.' を 基点として最小ポイントに挿入され辞書が 更新されます。(85)個人辞書は 通常は共有辞書程はサイズが大きくないので、検索時にはそれぞれの基点から 直線的に検索が行われます。

最後に確定された語は、一つのエントリの中の最初の位置に置かれます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.6 誤った登録の削除

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B8%ED%A4%C3%A4%BF%C5%D0%CF%BF%A4%CE%BA%EF%BD%FC"
"skk/誤った登録の削除"へのコメント(無し)

誤って個人辞書に登録した単語は削除できます。

削除したい単語を変換により求め、その単語が得られた時点で X を入力 します。ミニバッファに確認が出るので、それに対し y e s と答えます。 すると、個人辞書の対応するエントリが削除されます。現在のバッファに先程入 力した誤りの変換結果も削除されます。

 
さいきてき /再起的/

というエントリを誤って登録したという仮定で、その誤登録を削除する場合を例 にとって説明します。

 
S a i k i t e k i SPC

------ Buffer: foo ------
▼再起的
------ Buffer: foo ------

X

------------------ MiniBuffer ------------------
Really purge ``さいきてき /再起的/''?(yes or no)
------------------ MiniBuffer ------------------

y e s RET

------ Buffer: foo ------

------ Buffer: foo ------



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.7 個人辞書ファイルの編集

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B8%C4%BF%CD%BC%AD%BD%F1%A5%D5%A5%A1%A5%A4%A5%EB%A4%CE%CA%D4%BD%B8"
"skk/個人辞書ファイルの編集"へのコメント(無し)

コマンド skk-edit-private-jisyo を使うと、個人辞書ファイルが 開かれます。

個人辞書ファイルを開いて編集している間も skk を使えますが、 skk からの単語の登録、削除はできません。(他にも少し制限がありますが、 気にならないでしょう。)

編集が終わったら、C-c C-c と押すと、セーブされて、このバッファを閉じます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.8 個人辞書の保存動作

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B8%C4%BF%CD%BC%AD%BD%F1%A4%CE%CA%DD%C2%B8%C6%B0%BA%EE"
"skk/個人辞書の保存動作"へのコメント(無し)

個人辞書の保存動作について説明します。

個人辞書の保存が行われる場合として、次の 3 通りがあります。

  1. C-x C-c (または M-x save-buffers-kill-emacs) により Emacs を 終了させようとした場合。

  2. M-x skk-save-jisyo と入力するか、メニューバーより `Save Jisyo' を選択した場合。

  3. 変数 skk-jisyo-save-count で指定された回数、辞書の更新を行った結 果として、自動保存 (オートセーブ) 機能が働くとき。

保存動作を分析して考えます。まず、 Emacs に読み込んだ個人辞書が更新され ているかどうかを調べます。更新されていたら保存動作に入ります。Emacs の個 人辞書バッファを一時ファイルに保存して、そのファイルサイズが現存の (セー ブ前の) 個人辞書より小さくないかどうかをチェックします。個人辞書より小さ いときは、保存動作を継続するかどうか、確認のための質問がされます。 (86)

 
--------------------------- Minibuffer -----------------------------
New ~/.skk-jisyo will be 11bytes smaller.  Save anyway?(yes or no)
--------------------------- Minibuffer -----------------------------

ここで n o RET と答えた場合は、そこで保存動作が中止され、個 人辞書は以前の状態のままになります。y e s RET と答えた場合は 元の個人辞書を退避用の辞書に退避し、一時ファイルに保存した新しい個人辞書 を skk-jisyo に保存します。

もし、一時ファイルのサイズが 0 である場合は、なんらかの異常と考えられる ので、保存動作は直ちに中止されます。その場合は

M-x skk-kill-emacs-without-saving-jisyo

で Emacs を終了させ、個人辞書 (skk-jisyo)、および個人辞書の退避用 辞書 (skk-backup-jisyo) をチェックするよう強くお勧めします (87)

skk-compare-jisyo-size-when-saving

この変数の値を nil に設定すると、保存前の個人辞書とのサイズ比較 を行いません。

skk-jisyo-save-count

この変数で指定された回数、個人辞書の更新を行った場合に個人辞書の自動保 存が行われます。既定値は 50 です。また、この値を nil にすると、 個人辞書の自動保存機能が無効になります。

ここで、個人辞書の更新回数は確定回数と一致します。また、同じ候補について 確定した場合でもそれぞれ 1 回と数えられます (88)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.9 変換及び個人辞書に関する統計

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CA%D1%B4%B9%B5%DA%A4%D3%B8%C4%BF%CD%BC%AD%BD%F1%A4%CB%B4%D8%A4%B9%A4%EB%C5%FD%B7%D7"
"skk/変換及び個人辞書に関する統計"へのコメント(無し)

DDSKK では、Emacs の終了時に変換及び個人辞書に関する統計を取っています。 その結果は ファイル `~/.skk-record' に保存されます。保存される内容 は以下のような形式です。

 
Sun Jul 28 09:38:59 1996  登録:   4  確定:  285  確定率:  98%  語数:  3042

上記の「語数」の欄は 1 行を 1 語として数えているので、1 つの見出し語に対 し複数の候補を持っている場合、2 つ目以降の候補を無視しています。

ユーザ変数: skk-record-file

統計の結果を保存するファイル名を指定します。 変数 skk-user-directory からも設定ができます。 (see 節 5.2.1 設定ファイル)

ユーザ変数: skk-keep-record

この変数の値を nil に設定すると、本節で説明した統計機能を無効に します。ただし数値であれば、skk-record-file を指定数値の行数よ り大きくしません。

ユーザ変数: skk-count-private-jisyo-candidates-exactly

この変数の値を non-nil に設定すると、「語数」の数え方を変更します。 具体的には、 1 行を 1 語として数えるのではなく、正確に語数を数えます。 なお、その分時間がかかります。また、この場合でも `[' と `]' に囲まれた送り仮名毎のブロック形式内は数えません。

コマンド M-x skk-count-jisyo-candidates を使うと、辞書の候補数を数 えることができます。

 
M-x skk-count-jisyo-candidates

--------------- MiniBuffer --------------
Jisyo file: (default: /your/home/.skk-jisyo) ~/
--------------- MiniBuffer --------------

. s k k - j i s y o RET

-------------- Echo Area --------------
Counting jisyo candidates... 100% done
-------------- Echo Area --------------


------ Echo Area ------
3530 candidates
------ Echo Area ------

ただし、`[' と `]' に囲まれた送り仮名毎のブロック形式内は数えませ ん。

また、メニューバーが使用できる環境では、メニューバーを使ってこのコマンド を呼び出すことができます。See 節 `メニューバー' in

GNU Emacs Manual.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.10 辞書バッファ

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AD%BD%F1%A5%D0%A5%C3%A5%D5%A5%A1"
"skk/辞書バッファ"へのコメント(無し)

辞書検索プログラムを実行すると、必要ならば辞書が Emacs のバッファに読み 込まれます。このバッファを辞書バッファと呼びます。

辞書バッファの名前は、

「空白+`*'+辞書ファイル名(ディレクトリ抜き)+`*'」

という規則に基づいて付けられます。例えば、変数 skk-large-jisyo の 値が

`/usr/local/share/skk/SKK-JISYO.L'

であるとき、これに対する辞書バッファ名は、

` *SKK-JISYO.L*'

となります。

このバッファのメジャーモードは fundamental-mode です。しかし、諸 般の事情により、変数 major-mode の値をシンボル skk-jisyo-mode、 変数 mode-name の値を文字列 `SKK dic' としています (89)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.11 辞書バッファの文字コードの設定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AD%BD%F1%A5%D0%A5%C3%A5%D5%A5%A1%A4%CE%CA%B8%BB%FA%A5%B3%A1%BC%A5%C9%A4%CE%C0%DF%C4%EA"
"skk/辞書バッファの文字コードの設定"へのコメント(無し)

skk-jisyo-code

この変数の値は辞書ファイルの漢字コードを決定します。

この変数は以下のような値を取ります (90)

既定値は nil です。この場合、DDSKK 側で辞書の漢字コードを設定する ことはせず、Emacs に任せます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.10.12 辞書バッファのbuffer-file-name

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BC%AD%BD%F1%A5%D0%A5%C3%A5%D5%A5%A1%A4%CEbuffer%2Dfile%2Dname"
"skk/辞書バッファのbuffer-file-name"へのコメント(無し)

Emacs には save-some-buffers という関数があります。この関数は、ファ イルに関連付けられている各バッファについて、変更があればファイルに保存し ますが、実際に保存するかどうかをユーザに質問します。

Emacs のコマンドには M-x compile のように、 save-some-buffers を呼び出すものがあります。もし、個人辞書の辞書 バッファがファイル名と関連付けられていたとしたら、こうしたコマンドを 実行するたびに個人辞書を保存するかどうか質問されるので、面倒です。

DDSKK では、このような事態を避けるため、辞書バッファにおける変数 buffer-file-name の値を nil に設定しています。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.11 注釈 (アノテーション)

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C3%ED%BC%E1+%28%A5%A2%A5%CE%A5%C6%A1%BC%A5%B7%A5%E7%A5%F3%29"
"skk/注釈(アノテーション)"へのコメント(無し)

変換の際に、候補に注釈 (アノテーション) がついていれば、それを表示させる ことができます。

5.11.1 アノテーションの基礎   
5.11.2 アノテーションの使用   
5.11.3 アノテーションの登録   
5.11.4 アノテーションとして Wikipedia を表示する   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.11.1 アノテーションの基礎

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%A2%A5%CE%A5%C6%A1%BC%A5%B7%A5%E7%A5%F3%A4%CE%B4%F0%C1%C3"
"skk/アノテーションの基礎"へのコメント(無し)

この節では、アノテーションの辞書な中での扱いを説明します。 アノテーションには、ユーザが登録したものと、元々、共有辞書にあるものが あります。

ユーザが付けたアノテーションを「ユーザアノテーション」 と呼びます。ユーザアノテーションは、次の形式で個人辞書に保存されます。

 
「きかん /期間/機関;*機関投資家/基幹;*基幹業務/」

このように ; の直後に * の文字が自動的に振られます。これは ユーザが独自に付けたアノテーションであることを 示します (91)

一方、共有辞書に元々付けられているアノテーションを「システムアノテー ション」と呼び、これは ; の直後に * の文字を伴いません。 例えば、辞書の形式は次のようになります。

 
「いぜん /以前;previous/依然;still/」

システムアノテーションは、L 辞書等に採用されています。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.11.2 アノテーションの使用

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%A2%A5%CE%A5%C6%A1%BC%A5%B7%A5%E7%A5%F3%A4%CE%BB%C8%CD%D1"
"skk/アノテーションの使用"へのコメント(無し)

アノテーションを表示させるには、変数 skk-show-annotationnon-nil にします。 (92)

辞書の候補にアノテーションがあればエコーエリアに表示します。 (93)

ユーザアノテーションとシステムアノテーションを区別することで、ユーザアノ テーションだけを表示したり、あるいはその逆を行うことが可能です。 skk-annotation-function に表示したいアノテーションを non-nil と判定する関数を書きます。

 
(setq skk-annotation-function
      #'(lambda (annotation)
          (eq (aref annotation 0) ?*)))

上記の例では、アノテーションの先頭が * で始まる「ユーザアノテー ション」の場合に t を返すので、ユーザアノテーションだけを表示し ます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.11.3 アノテーションの登録

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%A2%A5%CE%A5%C6%A1%BC%A5%B7%A5%E7%A5%F3%A4%CE%C5%D0%CF%BF"
"skk/アノテーションの登録"へのコメント(無し)

アノテーションを付けるには、アノテーションを付けたい単語を確定した直後 に同じバッファで

M-x skk-annotation-add

とします。アノテーションを編集するバッファが開いて、カレントバッファにな ります。そこへアノテーションを付けます。編集が終わったら C-c C-c し ます。

M-x skk-annotation-add したものの、アノテーションを付けずに置きた いときは、

M-x skk-annotation-kill

とします。

また、最後に確定した候補についてのアノテーションを取り去りたいときは、

M-x skk-annotation-remove

とします。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.11.4 アノテーションとして Wikipedia を表示する

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%A2%A5%CE%A5%C6%A1%BC%A5%B7%A5%E7%A5%F3%A4%C8%A4%B7%A4%C6+Wikipedia+%A4%F2%C9%BD%BC%A8%A4%B9%A4%EB"
"skk/アノテーションとしてWikipediaを表示する"へのコメント(無し)

候補にアノテーションがない場合、アノテーションに代えて Wikipedia (http://ja.wikipedia.org/) による解説を表示することができます。

▼モードで候補を表示しているときに TAB を押すと、 skk-annotation-wikipedia-sources で指定された順で解説を取得し エコーエリアに表示(94) します。

 
B o k u j o u

----- Buffer: foo -----
▽ぼくじょう-!-
----- Buffer: foo -----

SPC

----- Buffer: foo -----
▼牧場-!-
----- Buffer: foo -----

TAB

----------------------------- Echo Area ------------------------------
牧場(ぼくじょう)とは、ウシ、ウマなどの家畜を飼養する施設。訓読みされ
てまきばと呼ばれることもある。
----------------------------- Echo Area ------------------------------

エコーエリアに解説が表示されている最中に C-o を押すと、 関数 browse-url を用いて、その解説の元となった URL をブラウズしま す。

ユーザ変数: skk-annotation-show-wikipedia-url
デフォルトは nilNon-nil とすると、見出し語を SPC で変換した際に その見出し語の注釈が存在しない場合に限り、 Wikipedia (日本語版) でその語 が参照されるための URL を注釈として表示します。表示中に C-o を押す と、関数 browse-url を用いてその URL をブラウズします。

ユーザ変数: skk-annotation-wikipedia-sources
アノテーションとして表示する Wikimedia のソースを指定します。 デフォルトは ja.wikipedia、en.wiktionary、simple.wikipedia、en.wikipedia、 ja.wiktionary の順です。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.12 漢字コード関連

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B4%C1%BB%FA%A5%B3%A1%BC%A5%C9%B4%D8%CF%A2"
"skk/漢字コード関連"へのコメント(無し)

5.12.1 漢字コードまたはメニューによる文字入力   
5.12.2 漢字コードを知る方法   

関連項目 See 節 5.10.11 辞書バッファの文字コードの設定



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.12.1 漢字コードまたはメニューによる文字入力

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B4%C1%BB%FA%A5%B3%A1%BC%A5%C9%A4%DE%A4%BF%A4%CF%A5%E1%A5%CB%A5%E5%A1%BC%A4%CB%A4%E8%A4%EB%CA%B8%BB%FA%C6%FE%CE%CF"
"skk/漢字コードまたはメニューによる文字入力"へのコメント(無し)

まずかなモードに入ります。\ キーを入力すると、漢字コード (区点、JIS ま たは EUC コード) またはメニューによる文字入力が行われます。ミニバッファ には、

 
---------------------------- Minibuffer -----------------------------
7/8 bits or KUTEN code for ○○ (00nn or CR for Jump Menu): -!-
---------------------------- Minibuffer -----------------------------

というプロンプトが表示されます。○○部分は 変数 skk-kcode-charset の値であり、その初期値は japanese-jisx0208 又 は japanese-jisx0213-1 です。 初期値は環境によって自動的に設定されます。

\ の代わりに C-u \ とすると異なる文字集合 (charset) を指定す る事ができます。

ここで、漢字コードがあらかじめ分かっている場合には、その漢字コードを入力 します。例えば `' の漢字コードは、JIS コードでは `216e'、EUC コードでは `a1ee' なので、いずれかの漢字コードを入力すれば `' が現在のバッファに挿入されます。区点コードで入力するには `01-78' の ように区と点の間にハイフン `-' を入れる必要があります。

漢字コードが不明の文字の入力をする場合は、漢字コードを入力せずにそのまま RET キーを入力します。するとミニバッファに以下のような表示が現れま す。

 
---------------------------- Minibuffer -----------------------------
A:   S: ̄  D:〜  F:}  G:=  H:¢  Q:◆  W:?  E:∩  R:?  T:≡  Y:?
---------------------------- Minibuffer -----------------------------

これを「第 1 段階のメニュー」と呼びます。第 1 段階のメニューでは、JIS 漢字を コードの順に 16 文字毎に 1 文字抽出し、ミニバッファに一度に 12 文字づつ 表示しています (95)。ここで SPC を入力する と、次の候補群を表示します (96)x により 1 つ前の候補群に戻ります。

キー a, s, d, f, g, h, q, w, e, r, t, y のいずれかを 入力すると (97)、そのキーに対応す る文字から始まる 16 個の文字が漢字コード順に表示されます。これを「第 2 段 階のメニュー」と呼びます。例えば、第 1 段階のメニューが上記の状態のときに d を入力すると 第 2 段階のメニューは以下のようになります。

 
--------------------------------- Minibuffer ----------------------------------
A:〜 S:‖ D:| F:… G:‥ H:‘ J:’ K:“ L:” Q:( W:) E:〔 R:〕 T:[ Y:] U:{
--------------------------------- Minibuffer ----------------------------------

ここでタイプすると、キー a, s, d, f, g, h, q, w, e, r, t, y のいずれかを 入力すると、対応する文字がカレントバッファに挿入されてメニューによる入力 が終了します。

第 2 段階のメニューが表示されているときも SPCx キーによ り第 2 段階のメニューが前進、後退します。

また <> によりメニューを 1 文字分だけ移動します。例えば、 第 2 段階のメニューが上記の状態のときに < を入力すると、メニューは 以下のようになります。

 
--------------------------------- Minibuffer ----------------------------------
A:\ S:〜 D:‖ F:| G:… H:‥ J:‘ K:’ L:“ Q:” W:( E:) R:〔 T:〕 Y:[ U:]
--------------------------------- Minibuffer ----------------------------------

第 1 段階あるいは第 2 段階のメニューが表示されているときに ? を入 力すると、そのときのキー A に対応する文字 (上記の例では、`') の文字コードが表示されます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.12.2 漢字コードを知る方法

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B4%C1%BB%FA%A5%B3%A1%BC%A5%C9%A4%F2%C3%CE%A4%EB%CA%FD%CB%A1"
"skk/漢字コードを知る方法"へのコメント(無し)

かな/カナモードで $ を入力すると、現在位置の直後にある文字の漢字コー ドをエコーエリアに表示します。例えば、カーソルを文字 `А' の上に置 いて $ を入力すると、

 
-------------------- Echo Area --------------------
`А' KUTEN: 07-01, JIS: 2721, EUC: a7a1, SJIS: 8440
-------------------- Echo Area --------------------

がエコーエリアに表示され、この文字がロシア文字であることがわかります。

Emacs のコマンド describe-char も有用でしょう。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.13 DDSKK 以外のツールを用いた辞書変換

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=DDSKK+%B0%CA%B3%B0%A4%CE%A5%C4%A1%BC%A5%EB%A4%F2%CD%D1%A4%A4%A4%BF%BC%AD%BD%F1%CA%D1%B4%B9"
"skk/DDSKK以外のツールを用いた辞書変換"へのコメント(無し)

5.13.1 skk-lookup    Lookup を用いた辞書変換
5.13.2 skk-look    look コマンドを用いた辞書変換



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.13.1 skk-lookup

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=skk%2Dlookup"
"skk/skk-lookup"へのコメント(無し)

`skk-lookup.el' を使用すると、辞書検索ツールの Lookup (http://openlab.jp/edict/lookup/) で検索できる辞書を用いて単語 の候補を出すことができるようになります (98)

DDSKK のインストール過程で (require 'lookup) が成功する場合は `skk-lookup.el' も自動的にインストールされます。 Lookup がインストールされているにも関わらず、うまく `skk-lookup.el' が インストールされない場合は、`SKK-CFG' を編集して `lookup.el' があるパスを ADDITIONAL_LISPDIR に設定し、再度 DDSKK をインストールして 下さい。 (99)

`~/.skk' に以下のように設定します。

 
(setq skk-search-prog-list
      (append skk-search-prog-list
              (list
               '(skk-lookup-search))))

DDSKK が用意している検索プログラムの中で最も遅いため(100)skk-search-server の後ろに持っ てきて辞書サーバの検索より後にします。

Lookup の agent で利用するのは、 lookup-search-agents から ndkks, ndcookie, ndnmz を取り去ったものです (101)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.13.2 skk-look

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=skk%2Dlook"
"skk/skk-look"へのコメント(無し)

`skk-look.el' は、 look コマンドを使って次の 3 つの機能を提供します (102)

5.13.2.1 英単語の補完   
5.13.2.2 英単語をあいまいに変換して取り出す   
5.13.2.3 英単語をあいまいに変換して取り出した後、更に再帰的な英和変換を行う   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.13.2.1 英単語の補完

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B1%D1%C3%B1%B8%EC%A4%CE%CA%E4%B4%B0"
"skk/英単語の補完"へのコメント(無し)

skk-use-looknon-nil に設定すると `skk-look.el' が使用できるようになります。

例えば、 `~/.skk' で以下のように設定します。

 
(setq skk-use-look t)

SKK abbrev mode が拡張されて、look コマンドを使用した補完が有効 になります。

 
/abstr

------ Buffer: foo ------
▽abstr
------ Buffer: foo ------

TAB

------ Buffer: foo ------
▽abstract
------ Buffer: foo ------

と補完してくれます。通常の補完と同様に、. で次の補完候補、, で ひとつ前の補完候補に移動できます。

SKK 形式の英和辞書(103)があれば、ここから SPC を押して英和変換ができます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.13.2.2 英単語をあいまいに変換して取り出す

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B1%D1%C3%B1%B8%EC%A4%F2%A4%A2%A4%A4%A4%DE%A4%A4%A4%CB%CA%D1%B4%B9%A4%B7%A4%C6%BC%E8%A4%EA%BD%D0%A4%B9"
"skk/英単語をあいまいに変換して取り出す"へのコメント(無し)

見出し語にアスタリスク (*) を入れて、SPC を押すと英単語をあいまい にして変換できます。

 
------ Buffer: foo ------
▽abstr*
------ Buffer: foo ------

SPC

------ Buffer: foo ------
▼abstract
------ Buffer: foo ------

確定すると、`abstr*' を見出し語、`abstract' を候補とする エントリが個人辞書に追加されます。このようなエントリを追加したくない場合、 ユーザ変数、skk-search-excluding-word-pattern-function を適切に 設定します。

例えば次のような設定です。

 
(add-hook 'skk-search-excluding-word-pattern-function
          ;; 返り値が non-nil の時、個人辞書に取り込まない。
          ;; KAKUTEI-WORD を引数にしてコールされるので、不要でも引数を取る
          ;; 必要あり
          #'(lambda (kakutei-word)
              (and skk-abbrev-mode
                   (save-match-data
                     ;; SKK-HENKAN-KEY が "*" で終わるとき
                     (string-match "\\*$" skk-henkan-key)))))



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.13.2.3 英単語をあいまいに変換して取り出した後、更に再帰的な英和変換を行う

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B1%D1%C3%B1%B8%EC%A4%F2%A4%A2%A4%A4%A4%DE%A4%A4%A4%CB%CA%D1%B4%B9%A4%B7%A4%C6%BC%E8%A4%EA%BD%D0%A4%B7%A4%BF%B8%E5%A1%A2%B9%B9%A4%CB%BA%C6%B5%A2%C5%AA%A4%CA%B1%D1%CF%C2%CA%D1%B4%B9%A4%F2%B9%D4%A4%A6"
"skk/英単語をあいまいに変換して取り出した後、更に再帰的な英和変換を行う"へのコメント(無し)

skk-look-recursive-search の値を non-nil にセットして下 さい。

 
▽abstr* (SPC)

  ---> ▼abstract (SPC) -> ▼アブストラクト (SPC) -> ▼抽象 (SPC)
    -> ▼abstraction (SPC) -> ▼アブストラクション

このように英単語 + その英単語を見出し語にした候補の「セット」を変換 結果として出力することができます。

この際、skk-look-expanded-word-only の値が non-nil であ れば、再帰検索に成功した英単語の「セット」だけを出力することができます (再帰検索で検出されなかった英単語は無視して出力しません) 。

SKK 辞書に

 
   abstract /アブストラクト/抽象/
   abstraction /アブストラクション/

というエントリがあることを前提としています (104)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.14 飾りつけ

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BE%FE%A4%EA%A4%C4%A4%B1"
"skk/飾りつけ"へのコメント(無し)

5.14.1 仮名文字のローマ字プレフィックスのエコー   
5.14.2 入力モードを示すモードラインの文字列の変更   
5.14.3 入力モードを示すカーソル色に関する設定   
5.14.4 変換候補一覧の表示方法   
5.14.5 ▼モードにおける変換候補のハイライト表示   
5.14.6 変換候補の更なる装飾   
5.14.7 XEmacs & Emacs 21 のモードライン   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.14.1 仮名文字のローマ字プレフィックスのエコー

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B2%BE%CC%BE%CA%B8%BB%FA%A4%CE%A5%ED%A1%BC%A5%DE%BB%FA%A5%D7%A5%EC%A5%D5%A5%A3%A5%C3%A5%AF%A5%B9%A4%CE%A5%A8%A5%B3%A1%BC"
"skk/仮名文字のローマ字プレフィックスのエコー"へのコメント(無し)

ユーザ変数: skk-echo

この変数の値は、仮名文字のローマ字プレフィックス (105) のエコーの有無を制御します。

変数 skk-echo の値が non-nil であれば、仮名文字のローマ字 プレフィックスが、入力時点で一旦現在のバッファに挿入され、続く母音の入 力の際に、かな文字に変換された時点で現在のバッファから消去されます。

 
t

------ Buffer: foo ------
t
------ Buffer: foo ------

a

------ Buffer: foo ------
た
------ Buffer: foo ------

変数 skk-echo の値が nil であれば、仮名文字のローマ字プレ フィックスのエコーは行われません。これを上記の例で考えると、`t' が現 在のバッファに挿入されず、続く母音 (a) が入力されたとき `' の文字が挿入されます。

ユーザ変数: skk-prefix-hiragana-face
ユーザ変数: skk-prefix-katakana-face
ユーザ変数: skk-prefix-jisx0201-face

それぞれかなモード、カナモード、JISX0201 モードにおけるローマ字プレフィッ クスのフェイスを指定します。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.14.2 入力モードを示すモードラインの文字列の変更

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C6%FE%CE%CF%A5%E2%A1%BC%A5%C9%A4%F2%BC%A8%A4%B9%A5%E2%A1%BC%A5%C9%A5%E9%A5%A4%A5%F3%A4%CE%CA%B8%BB%FA%CE%F3%A4%CE%CA%D1%B9%B9"
"skk/入力モードを示すモードラインの文字列の変更"へのコメント(無し)

下記の変数の値を変更することにより、モードラインにおいて入力モードを示す文字 列が変更されます。

ユーザ変数: skk-latin-mode-string
アスキーモードを示す文字列。標準では、"SKK"。

ユーザ変数: skk-hiragana-mode-string
かなモードを示す文字列。標準では、"かな"。

ユーザ変数: skk-katakana-mode-string
カナモードを示す文字列。標準では、"カナ"。

ユーザ変数: skk-jisx0208-latin-mode-string
全英モードを示す文字列。標準では、"全英"。

ユーザ変数: skk-abbrev-mode-string
SKK abbrev モードを示す文字列。標準では、"aあ"。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.14.3 入力モードを示すカーソル色に関する設定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%C6%FE%CE%CF%A5%E2%A1%BC%A5%C9%A4%F2%BC%A8%A4%B9%A5%AB%A1%BC%A5%BD%A5%EB%BF%A7%A4%CB%B4%D8%A4%B9%A4%EB%C0%DF%C4%EA"
"skk/入力モードを示すカーソル色に関する設定"へのコメント(無し)

ユーザ変数: skk-use-color-cursor
この変数の値が non-nil ならば、カーソルに色付けします。nil ならば、この機能を無効にします。

標準では、ウィンドウシステムを使用していてなおかつ色表示が可能な場合に限 り、この機能が有効になります。

この機能が有効になっているとき、以下の変数の値を変更することで、各モード におけるカーソルの色が変更されます。

ユーザ変数: skk-cursor-default-color
SKK モードがオフであることを示すカーソル色。標準では、カーソルのある該当 フレームにおける標準のカーソル色を使います。

ユーザ変数: skk-cursor-hiragana-color
かなモードであることを示すカーソル色。標準では、背景の明暗により "coral4" または "pink" を用います。

ユーザ変数: skk-cursor-katakana-color
カナモードであることを示すカーソル色。標準では、背景の明暗により "forestgreen" または "green" を用います。

ユーザ変数: skk-cursor-jisx0201-color
JISX0201 モードであることを示すカーソル色。標準では、背景の明暗により "blueviolet" または "thistle" を用います。

ユーザ変数: skk-cursor-jisx0208-latin-color
全角英字モードであることを示すカーソル色。標準では、"gold" を用います。

ユーザ変数: skk-cursor-latin-color
アスキーモードであることを示すカーソル色。標準では、背景の明暗により "ivory4" または "gray" を用います。

ユーザ変数: skk-cursor-abbrev-color
skk abbrev モードであることを示すカーソル色。標準では、"royalblue" を 用います。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.14.4 変換候補一覧の表示方法

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CA%D1%B4%B9%B8%F5%CA%E4%B0%EC%CD%F7%A4%CE%C9%BD%BC%A8%CA%FD%CB%A1"
"skk/変換候補一覧の表示方法"へのコメント(無し)

変換候補一覧の表示方法は、次の4つに大別されます。

ここではその表示方法の制御について解説します。

ユーザ変数: skk-show-inline
この値が non-nil であれば、候補一覧を現在のポイント位置でインライン表 示します。

また、値が vertical であれば、各候補を縦方向にインライン表示します (XEmacs を除く)。

ユーザ変数: skk-inline-show-face
インラインで候補を表示する際のフェイスを指定します。

候補文字列のフェイス属性をそのまま使いたい場合は nil に設定して下 さい。

ユーザ変数: skk-inline-show-background-color
インラインで候補を表示する際の背景色を指定します。 skk-inline-show-face または skk-treat-candidate-appearance-function で背景色が指定されていない 文字に対してのみ作用します。

ユーザ変数: skk-show-tooltip
この値が non-nil であれば、候補一覧をツールティップで表示します。 同時に、この変数は注釈 (アノテーション) の表示方法も制御します。

See 節 5.11 注釈 (アノテーション).

ユーザ変数: skk-tooltip-face
ツールティップで候補を表示する際のフェイスを指定します。

候補文字列のフェイス属性をそのまま使いたい場合は nil に設定して下 さい。

ユーザ変数: skk-tooltip-mouse-behavior
ツールティップを表示する場合のマウスポインタの挙動を指定します。

ユーザ変数: skk-show-candidates-always-pop-to-buffer
この値が non-nil であれば、画面を上下に分割したうえで、変換一覧を専用 の「*候補*バッファ」で表示します。

候補一覧表示中に、この値を動的に切り換える手段が用意されています。

ユーザ変数: skk-show-candidates-toggle-display-place-char
デフォルトは C-f です。このキーを候補一覧表示時にタイプすると、候補 一覧の表示位置をエコーエリアとバッファとで切り替えます。

ユーザ変数: skk-kouho-window-background
*候補*バッファの背景色を指定します。デフォルトは濃青(#00005F)です。 背景色を付けたくない場合は nil を指定すること。

デフォルトでは3つの変数 skk-show-inline, skk-show-tooltip, skk-show-candidates-always-pop-to-buffer とも nil です。 この状態では候補一覧はエコーエリアに表示(106) します。 もしも、これら変数のうち2つ以上が non-nil の場合、優先順位は上記の 解説の順です。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.14.5 ▼モードにおける変換候補のハイライト表示

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A2%A7%A5%E2%A1%BC%A5%C9%A4%CB%A4%AA%A4%B1%A4%EB%CA%D1%B4%B9%B8%F5%CA%E4%A4%CE%A5%CF%A5%A4%A5%E9%A5%A4%A5%C8%C9%BD%BC%A8"
"skk/▼モードにおける変換候補のハイライト表示"へのコメント(無し)

ユーザ変数: skk-use-face

この変数の値が non-nil であれば、Emacs のフェイス機能を使って変換 候補をハイライト表示します。

このハイライト表示には Emacs のオーバーレイ (overlay) の機能を使います (107)

ユーザ変数: skk-henkan-face

この変数の値はフェイスであり、このフェイスによって変換候補がハイライト表 示されます。標準では、背景の明暗により "black/darkseagreen2" 又は "white/darkolivegreen" を用います。

変数 skk-henkan-face には、既存のフェイス (108)を指定できますが、新 たにフェイスを作ることもできます。そのために、以下の関数が用意されていま す。

Function: skk-make-face FACE

形式: (skk-make-face FACE)

この関数は、引数 FACE と同じ名前のフェイスを作成して、そのフェイスを返し ます。フェイスの前景色・背景色は、引数 FACE によって、例えば以下の例のよ うに決定されます。

 
(skk-make-face 'DimGray/PeachPuff1)
(setq skk-henkan-face 'DimGray/PeachPuff1)

この場合、前景色は DimGray に、背景色は PeachPuff1 になります。

もうひとつ例を挙げます。

 
(skk-make-face 'RosyBrown1)
(setq skk-henkan-face 'RosyBrown1)

この場合、前景色は RosyBrown1 になります。背景色はもちません。つまり、バッ ファの背景色がそのまま見えます。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.14.6 変換候補の更なる装飾

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%CA%D1%B4%B9%B8%F5%CA%E4%A4%CE%B9%B9%A4%CA%A4%EB%C1%F5%BE%FE"
"skk/変換候補の更なる装飾"へのコメント(無し)

変換候補についてユーザの任意の加工を施すために 変数 skk-treat-candidate-appearance-function を用意してあります。

ユーザ変数: skk-treat-candidate-appearance-function

変数 skk-treat-candidate-appearance-function に適切な形式で関数を 収めることにより、変換候補をユーザの任意に加工することができます。

「適切な形式」とは、次のとおりです。

  1. 引数を 2 つ取ること。

  2. 第 1 引数は文字列として扱うこと。これは加工前の文字列に相当する。

  3. 第 2 引数が nil の時は通常の変換時、non-nil の時は候補一覧表 示時を表すものとして扱うこと。

  4. 返り値は以下のいずれかとすること。

    - 文字列

    この場合、この文字列は候補と注釈を両方含みうるものとして処理される。

    - cons cell (候補 . 注釈)

    この場合、候補はもう注釈を含まないものとして処理される。注釈については先 頭が ";" かどうかを調べた上で処理される。

    - cons cell (候補 . (セパレータ . 注釈))

    この場合、候補はもう注釈を含まないものとして処理される。セパレータは通常 の ";" の代わりに利用される。注釈はもうセパレータを含まないものとして処 理される。

ファイル `etc/dot.skk' に設定例があるほか、サンプルとして関数 skk-treat-candidate-sample1skk-treat-candidate-sample2 を用意してあります。 ファイル `~/.skk' に次のいずれかを書いてみて変換候補の装飾を試して ください。

 
(setq skk-treat-candidate-appearance-function
      'skk-treat-candidate-sample1)

 
(setq skk-treat-candidate-appearance-function
      'skk-treat-candidate-sample2)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.14.7 XEmacs & Emacs 21 のモードライン

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=XEmacs+%26%2338%3B+Emacs+21+%A4%CE%A5%E2%A1%BC%A5%C9%A5%E9%A5%A4%A5%F3"
"skk/XEmacsEmacs21のモードライン"へのコメント(無し)

XEmacs および Emacs 21 では以下の機能が使用できます。

5.14.7.1 インジケータ   
5.14.7.2 アイコン   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.14.7.1 インジケータ

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%A4%A5%F3%A5%B8%A5%B1%A1%BC%A5%BF"
"skk/インジケータ"へのコメント(無し)
ユーザ変数: skk-indicator-use-cursor-color
DDSKK のインジケータをモードラインの左に表示している場合(109)、 インジケータにカーソルの色と同じ色が付くようになりました。 また、インジケータをマウスなどのポインティングデバイスの第2ボタンをクリック するとメニューが表示されます。

インジケータに色を付けたくない場合は、この変数を nil にします。

インジケータに独自色を使いたい場合は、以下のフェイス(110) を設定します。この場合カーソルの色は参照されません。

Emacs 21(111) の場合

XEmacs の場合



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.14.7.2 アイコン

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%A2%A5%A4%A5%B3%A5%F3"
"skk/アイコン"へのコメント(無し)

変数 skk-show-icon の値を non-nil と設定することにより、モー ドラインに SKK のアイコンが表示されます。 アイコンの画像ファイル(skk.xpm)は、変数 skk-icon で定義されていま す。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.15 ユーザガイダンス関連

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%E6%A1%BC%A5%B6%A5%AC%A5%A4%A5%C0%A5%F3%A5%B9%B4%D8%CF%A2"
"skk/ユーザガイダンス関連"へのコメント(無し)

5.15.1 エラーなどの日本語表示   
5.15.2 助言的案内メッセージの表示   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.15.1 エラーなどの日本語表示

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%A5%A8%A5%E9%A1%BC%A4%CA%A4%C9%A4%CE%C6%FC%CB%DC%B8%EC%C9%BD%BC%A8"
"skk/エラーなどの日本語表示"へのコメント(無し)

標準では、エラー、メッセージおよびミニバッファでのプロンプトは、英語で表 示されます。

ユーザ変数: skk-japanese-message-and-error

この変数の値を non-nil に設定すると、エラー、メッセージおよびミニ バッファでのプロンプトを日本語で表示します。標準では nil です。

ユーザ変数: skk-show-japanese-menu

この変数の値を non-nil に設定すると、メニューを日本語で表示します。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.15.2 助言的案内メッセージの表示

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%BD%F5%B8%C0%C5%AA%B0%C6%C6%E2%A5%E1%A5%C3%A5%BB%A1%BC%A5%B8%A4%CE%C9%BD%BC%A8"
"skk/助言的案内メッセージの表示"へのコメント(無し)

ユーザ変数: skk-verbose

この変数の値を non-nil に設定すると、SKK が従来表示しなかったような 入力・変換中の助言的メッセージが表示されます。具体的には、

ユーザ変数: skk-verbose-wait

助言的メッセージを表示するまでの待ち時間 (秒)。標準は 2.5 秒です。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.16 VIP/VIPERとの併用

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=VIP%2FVIPER%A4%C8%A4%CE%CA%BB%CD%D1"
"skk/VIP/VIPERとの併用"へのコメント(無し)

ユーザ変数: skk-use-viper

この変数の値を non-nil に設定すると、VIPER に対応します。

VIPER については 節 `VIPER' in

VIPER Manual
. を参照してください。

また、VIPER の前身である VIP にも対応します。ただし、正式に対応している バージョンは 3.5 のみです。これは Mule 2.3 に標準添付します (112)



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.17 I-search関連

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=I%2Dsearch%B4%D8%CF%A2"
"skk/I-search関連"へのコメント(無し)

5.17.1 起動時の入力モードの指定   
5.17.2 間に空白等を含む文字列の検索   



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.17.1 起動時の入力モードの指定

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B5%AF%C6%B0%BB%FE%A4%CE%C6%FE%CE%CF%A5%E2%A1%BC%A5%C9%A4%CE%BB%D8%C4%EA"
"skk/起動時の入力モードの指定"へのコメント(無し)

ユーザ変数: skk-isearch-use-previous-mode

この変数の値が non-nil であれば、次のインクリメンタル・サーチ起動 時の入力モードは、前回のインクリメンタル・サーチでの入力モードになります。

ユーザ変数: skk-isearch-start-mode

この変数の値は、インクリメンタル・サーチの起動時の入力モードを決定します。 ただし変数 skk-isearch-use-previous-mode の値が non-nil な らば、そちらの機能が優先されます。

この変数は以下の値を取り得ます。

latin

アスキーモード

hiragana

かなモード

jisx0208-latin

全英モード



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.17.2 間に空白等を含む文字列の検索

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=%B4%D6%A4%CB%B6%F5%C7%F2%C5%F9%A4%F2%B4%DE%A4%E0%CA%B8%BB%FA%CE%F3%A4%CE%B8%A1%BA%F7"
"skk/間に空白等を含む文字列の検索"へのコメント(無し)

`検索' という文字列をインクリメンタル・サーチにより検索する場合に、 バッファが以下のような状態になっていることがあります。

 
-------- Buffer: foo --------
この行末から始まる文字列を検
索して下さい。
-------- Buffer: foo --------

このような場合のために、Emacs は正規表現によるインクリメンタル・サーチを 提供しています。DDSKK はこの正規表現によるインクリメンタル・サーチにも対 応しているため、空白や改行を含んだ検索も可能です。

M-x isearch-forward-regexp

前方への正規表現によるインクリメンタル・サーチ。 C-u C-s または M-C-s で起動します。

M-x isearch-backward-regexp

後方への正規表現によるインクリメンタル・サーチ。 C-u C-r または M-C-r で起動します。

以下は空白や改行の処理を制御する変数です。

skk-isearch-whitespace-regexp

この変数の値は正規表現です。この正規表現にマッチする要素は、正規表現によ るインクリメンタル・サーチにおいては、単語を区切る要素ではないと判断され ます。この変数の既定値は以下のようになっています。

 
"\\(\\s \\|[ \t\n\r\f]\\)*"

変数 skk-isearch-whitespace-regexp の値を変更することで、正規表現 によるインクリメンタル・サーチを拡張することができます。例えば、電子メー ルの引用部分を検索する場合を考えます。

 
> 引用部分も検
> 索できる。

上記のうち、「検索」という語は 2 行にわたっているうえ引用マークが挿入さ れています。ここで

 
(setq skk-isearch-whitespace-regexp "\\(\\s \\|[ \t\n\r\f<>|]\\)*")

と設定することにより、「検索」を検索できるようになります。



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

5.18 picture-modeとの併用

URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=skk&node=picture%2Dmode%A4%C8%A4%CE%CA%BB%CD%D1"
"skk/picture-modeとの併用"へのコメント(無し)

SKK モードを picture-mode において使用した場合は、以下のような問 題点があります。ただし、これらは picture-mode の問題なので、現在 のところ DDSKK 側では対処していません。

  1. SKK モードで全角文字を入力した場合に、BS で全角文字を消すことができ ません。現状では、後方にある文字を消したい場合は、その文字にポイントを合 わせ、C-c C-d で一文字づつ消す必要があります。

  2. コマンド picture-movement-uppicture-movement-down によ り上下に全角文字を挿入した場合に、桁がずれる場合があります。

関数 move-to-column-force の中で使用されている関数 move-to-column の引数として、全角文字を無視した桁数が与えられるこ とがあり、そのときカーソル移動ができないため、これらの問題が生じます。


[ << ] [ >> ]           [表紙] [目次] [索引] [検索] [上端 / 下端] [?]