POBox for Emacs

最新版

このページで紹介している POBox for Emacs の開発は しばらく休止することにします. 今後は PRIME for Emacsの 開発に注力します. PRIMEも POBox と同じ予測入力システムです.

POBox とは

POBox は増井俊之さんが開発した予測入力手法です. 詳しくは POBox のホームページ を参照して下さい.

pobox-el は増井さん監修の元, 従来の Emacs 版 POBox を大幅に機能追加, コード変更したものです. 主な追加機能は以下の通りです.

インストール

ダウンロード

pobox-el をインストールするには, 複数のファイルをダウンロードする 必要があります. http://www.taiyaki.org/pobox/src/ から tar.gz を, ダウンロードして下さい. tar.gz には単独でも公開されている mellkakasi も 一緒にまとめられています. また, tar.gz に含まれている suikyo は, 単独で公開されている suikyo とは若干実装が違いますが, pobox-el を使う上での違いはほとんどありません. pobox-el からはどちらの suikyo も利用可能です. pobox-el 内の suikyo は 今後廃止される予定です.

.emacs の設定

バージョン 1.15.0 以降から設定の仕方が多少変わりました. バージョン 1.15.0 以前のものでも, バージョン 1.15.0 以降の設定で動作します.

pobox-el のファイル群 を ~/elisp/pobox/ に置いたとして, 以下の設定を .emacs に追加してください. pobox-conf.el は設定ファイルとして使用して下さい. suikyo, mell, kakasi の各ライブラリに対して既に設定を行っていれば 設定の必要はありません.

;;; POBox メインモジュール
(setq load-path (cons (expand-file-name "~/elisp/pobox")        load-path))
;;; ローマ字かな変換モジュール
(setq load-path (cons (expand-file-name "~/elisp/pobox/suikyo") load-path))
;;; 汎用ライブラリ
(setq load-path (cons (expand-file-name "~/elisp/pobox/mell")   load-path))
;;; KAKASI 用ライブラリ
(setq load-path (cons (expand-file-name "~/elisp/pobox/kakasi") load-path))

(load-file (expand-file-name "~/elisp/pobox/pobox-conf.el"))

利用するために必要なもの

APEL
バージョン 1.15.1 から APEL (poe.el) が必要になりました.
POBox サーバを使用する場合 (つまり, ほとんど必須)
pbserver
岡田さんによる拡張 POBox サーバを使用する場合
pbserv (私家版 pbserver)
高林さんによる Pogemo を使用する場合
Pogemo (CVS)
動的単語補完を使用する場合
Migemo
kakasi
数式計算を使用する場合
bc コマンド (/usr/bin/bc)
かんなを使用する場合
かんな
かんなに対応した Emacs

ローマ字の設定

以下の作業はやらなくても構いません. その場合, 初期設定のローマ字で動作します.

展開されたディレクトリ以下の pobox/suikyo/.romaji-kana を ホームディレクトリへコピーします. 以降, ~/.romaji-kana を 編集することでローマ字の設定が変更可能です.

.romaji-kana のフォーマット

a	あ
kya	きゃ
tt	っ	t

上記のように, "「ローマ字」<タブ>「かな」" または "「ローマ字」<タブ>「かな」<タブ>「未変換の字」" となっています. 「未変換の字」というのは, 上記の場合だと, "tt" と入力すると "っ" と変換されて, 2 つめの "t" が 未変換でまだ残っているということです.

使い方

基本操作

pobox-mode の on/off

[Ctrl]-j

変換候補の巡回

[Space]

変換候補の決定

[Enter]

入力のキャンセル

[Ctrl]-g

変換候補の一覧表示

[Ctrl]-l

+- "tai" ----------------------------------------------------------------+
|[たい]                                                                  |
|(対応)(待避)(タイムアウト)(対話者)(対象)(対する)(対話)(対して)(対策)(vs)|
+------------------------------------------------------------------------+
  ↓
+- "tai + [Ctrl]-l" -----------------------------------------------------+
|[対応]                                                                  |
|[対応](待避)(タイムアウト)(対話者)(対象)(対する)(対話)(対して)(対策)(vs)|
|(たい)(タイ)(碓)(載)(炊い)(他意)(太)(汰)(体)(堆)(対)(耐)(岱)(帯)(待)(怠)|
|(態)(戴)(替)(泰)(滞)(胎)(腿)(苔)(袋)(貸)(退)(逮)(隊)(黛)                |
+------------------------------------------------------------------------+

前方一致と完全一致の切り替え

[Ctrl]-. (ピリオド)

+- "tai" ----------------------------------------------------------------+
|[たい]                                                                  |
|(対応)(待避)(タイムアウト)(対話者)(対象)(対する)(対話)(対して)(対策)(対)|
+------------------------------------------------------------------------+
  ↓ ↑
+- "tai + [Ctrl]-." -----------------------------------------------------+
|[たい]                                                                  |
|(対)(体)(態)(大)(隊)(タ)(耐)(泰)(帯)(太)                                |
+------------------------------------------------------------------------+

変換候補を番号で選択

[Ctrl]-u

+- "kazu" ---------------------------------------------------------------+
|[かず]                                                                  |
|(かず)(カズ)(一)(数)(和)(數)(和彦)(一博)(数々)                          |
+------------------------------------------------------------------------+
  ↓ ↑
+- "kazu + [Ctrl]-u" ----------------------------------------------------+
|[かず]                                                                  |
|1かず 2カズ 3一 4数 5和 6數 7和彦 8一博 9数々                           |
+------------------------------------------------------------------------+

変換候補の決定 + 次の文字を入力

大文字

+- "yoro + [Space]" -----------------------------------------------------+
|[よろしく]                                                              |
|(よろ)(良炉)(鎧)(具)(甲)(鎧戸)(喜)(慶)(喜び)(憙)                        |
+------------------------------------------------------------------------+
  ↓
+- "yoro + [Space] + O" -------------------------------------------------+
|よろしく[お]                                                            |
|        (お願い)(大文字)(ON)(お)(恐れ)(遅い)(重い)(置いた)(行った)(多く)| 
+------------------------------------------------------------------------+

辞書登録

[Ctrl]-w

+-- "taiyaki" -----------------------------------------------------------+
|[たいやき]                                                              |
|(たいやき)(タイヤキ)(taiyaki)                                           |
+------------------------------------------------------------------------+
  ↓
+-- "taiyaki + [Ctrl]-w" ------------------------------------------------+
|[たいやき]                                                              |
|(たいやき)(タイヤキ)(taiyaki)                                           |
+------------------------------------------------------------------------+
|単語登録 (taiyaki):                                                     |
+------------------------------------------------------------------------+

辞書削除

[Ctrl]-q

+-- "sakujo + [Space]" --------------------------------------------------+
|[削除]                                                                  |
|(作条)(索条)(さくじょ)(サクジョ)(sakujo)                                |
+------------------------------------------------------------------------+
  ↓
+-- "sakujo + [Space] + [Ctrl]-q" ---------------------------------------+
|[削除]                                                                  |
|(作条)(索条)(さくじょ)(サクジョ)(sakujo)                                |
+------------------------------------------------------------------------+
|削除 を削除しますか? (y or n)                                           |
+------------------------------------------------------------------------+

ひらがな変換

[Meta]-h

カタカナ変換

[Meta]-k

英数字変換

[Meta]-l

応用操作

再変換

[Ctrl]-u [Ctrl]-j: 直前の文字列を再変換する.

リージョンを指定して [Space]: リージョンの文字列を再変換する.

リージョンを指定して [Ctrl]-j: リージョンの文字列を再変換する. [Space] との違いは, こちらは pobox-mode でなくても有効.

変換候補の AND 検索

[Ctrl]-s

+- "sai + [Ctrl]-l" -----------------------------------------------------+
|[最初]                                                                  |
|[最初](殺)(最新作)(採用)(際)(再発明)(再)(さい)(サイ)(差異)(債)(催)(最)  |
|(哉)(塞)(妻)(宰)(彩)(才)(採)(栽)(歳)(済)(災)(采)(犀)(砕)(砦)(祭)(斎)(細)|
|(菜)(裁)(載)(財)(咲い)(晒)(偲)(柴)(衰)                                  |
+------------------------------------------------------------------------+
  ↓
+- "sai + [Ctrl]-l + [Ctrl]-s + kiwa" -----------------------------------+
|[際|さい*きわ]                                                          |
|[際]                                                                    |
+------------------------------------------------------------------------+

変換エンジンの選択

[Ctrl]-c + e

+- "[Ctrl]-c e" ---------------------------------------------------------+
|[- pobox-engine-dabbrev           動的単語補完                         ]| 
| - pobox-engine-bc                bc コマンド (数式計算)                |  
| + pobox-engine-pbserver          基本変換エンジン                      |  
| - pobox-engine-canna             canna による漢字変換                  |  
|                                                                        |
|                                                    OK   キャンセル     |
| ---------------------------------------------------------------------- | 
|                                                                        |
|    dabbrev のような動的単語補完エンジン.                               |
|  同じバッファ内に表示されている文字列を候補として処理します.           |
|  migemo および kakasi が別途インストールされている必要があります.      |
+------------------------------------------------------------------------+
  (これは別ウインドウで表示されます)

入力言語の変更

[Ctrl]-c + c

+- "nihongo" ------------------------------------------------------------+
|[にほんご]                                                              |
|(日本語)(にほんご)(ニホンゴ)(nihongo)                                   |
+------------------------------------------------------------------------+
  ↓
+- "nihongo [Ctrl]-c c" -------------------------------------------------+
|[nihongo]                                                               |
|(日本語)(にほんご)(ニホンゴ)(nihongo)                                   |
+------------------------------------------------------------------------+

リージョン範囲を辞書登録

[Ctrl]-c + w

変換候補の決定 + 空白を入力

[Meta]-[Space]

前後の入力文字を入れ換える

[Ctrl]-t

カスタマイズ

pobox-conf.el に設定を記述することでカスタマイズが可能になります. デフォルト値が pobox-conf.el に書かれていますのでそれを参考に 行って下さい.

;;;; ここは変更すると動作しなくなる恐れがあります.
(autoload 'pobox-mode "pobox" "POBox mode" t)
(global-set-key "\C-j" 'pobox-mode)

;;;; ここ以降にカスタマイズ設定を書いて下さい.

;;;; ============================================================
;;;; 基本的な設定
;;;; ============================================================
;; POBox の入力スタイル
;; 'default, 'capital-only, 'komatsu から選択可能.
;; 'default:      デフォルトの入力スタイル
;; 'capital-only: 大文字のみが日本語入力開始キー
;; 'komatsu:      小松 (PoBox-el の作者) の入力スタイル")
;; nil:           なにもしない
;(setq pobox-style nil) 

;; 優先順位および初期使用フラグ
;; \C-ce (pobox-engine-select) で動的に変更可能です.
;(setq pobox-engine-list
;      '((pobox-engine-alphabet . t) ;; アルファベット入力補助
;       (pobox-engine-dabbrev)       ;; 日本語動的単語補完
;	(pobox-engine-bc)            ;; 数値計算 (おまけ)
;	(pobox-engine-pbserver . t)  ;; 増井版 Pobox Server
;	(pobox-engine-pbserv)        ;; 岡田版 Pobox Server
;	(pobox-engine-pogemo)        ;; 高林版 Pobox Server
;	(pobox-engine-canna)))       ;; かんなによる単漢字変換
;; 増井版  http://www.csl.sony.co.jp/person/masui/OpenPOBox/server/
;; 岡田版  http://www.math.s.chiba-u.ac.jp/~okada/misc/pbserv.html 
;; 高林版  http://cvs.namazu.org/pogemo/

;;;; ============================================================
;;;; キーマップの設定
;;;; ============================================================
;(add-hook 
; 'pobox-keymap-init-hook
; '(lambda () 
;    (progn
;      ;; 以下は例なので, キーバインドに意味はない
;      (define-key pobox-fund-mode-map   "\M-n" 'pobox-enum-mode)
;      (define-key pobox-input-mode-map  "\M-n" 'pobox-enum-mode)
;      (define-key pobox-conv-mode-map   "\M-n" 'pobox-enum-mode)
;      (define-key pobox-cand-mode-map   "\M-n" 'pobox-enum-mode)
;      (define-key pobox-narrow-mode-map "\M-n" 'pobox-enum-mode)
;      )))
;; 変換をしないで直接入力をするキー
;(setq pobox-direct-key-alist
;  '((?. "。")
;    (?, "、")
;    (?] "」")
;    (?[ "「")))
;; 大文字入力を単語の区切りとするかどうか.
;(setq pobox-fix-by-capital-p t)
;; 大文字を (おそらくは間違えて) 連続入力しても無視する時間. (マイクロ秒)
;(setq pobox-ignore-capital-time 150000)

;;;; ============================================================
;;;; 候補選択
;;;; ============================================================
;; nil 以外の場合, 確定した後次の単語を予測する
;(setq pobox-predict-after-fix nil)
;; pobox-input-mode 時の候補の決定方法の設定: nil 以外の場合は
;;  常に [] 内の候補を, nil の場合は予測候補の最初のものを選択する
;(setq pobox-direct-mode-sensitive nil)
;; nil 以外の場合, 常に変換候補を 1 行で表示
;(setq pobox-disp-cand-list-oneline nil)
;; pobox-enum-mode を ON の状態から始める
;(setq pobox-enum-mode t)
;; pobox-enum-mode 時に選択用として使用される文字のリスト
;(setq pobox-enum-char-list '(?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?0))

;;;; ============================================================
;;;; カーソルの色
;;;; ============================================================
;; find-color の引数の 2 つ目は TTY の時の色
;; POBox モード時のカーソルの色
;(setq pobox-cursor-color '("Pink" 6))
;; POBox 候補の AND 検索中のカーソルの色
;(setq pobox-narrow-cursor-color '("LightSkyBlue" 4))

;;;; ============================================================
;;;; その他
;;;; ============================================================
;; POBox で入力する言語とインジケータのリスト
;(setq pobox-language-list '(japanese "[PB|あ]" english "[PB|Aa]"))
;; デフォルトで入力される言語
;(setq pobox-language-default 'japanese)
;; nil の場合, 頻度に応じてカタカナが第 0 候補になる
;(setq pobox-language-always-hiragana t)

;;;; ============================================================
;;;; 各変換エンジンのカスタマイズ
;;;; ============================================================
;; 優先順位および初期使用フラグ
;(setq pobox-engine-list
;      '((pobox-engine-alphabet . t)
;       (pobox-engine-dabbrev)
;	(pobox-engine-bc)
;	(pobox-engine-pbserver . t)
;	(pobox-engine-pbserv)
;	(pobox-engine-pogemo)
;	(pobox-engine-canna)))

;; 接続する pbserver のホスト名
;(setq pobox-engine-pbserver-server "localhost")
;; pbserver が使用するポート番号
;(setq pobox-engine-pbserver-port 1178)

;; 接続する pbserv のホスト名
;(setq pobox-engine-pbserv-server "localhost")
;; pbserv が使用するポート番号
;(setq pobox-engine-pbserv-port 1178)
;; pbserv が返す候補の数. (nil の場合はデフォルト値を使用する)
;(setq pobox-engine-pbserv-max-cands nil)

;; 接続する Pogemo のホスト名
;; pogemo コマンドのパス
;(setq pobox-engine-pogemo-command "pogemo")
;; pogemo に与える引数, 主に使用辞書
;(setq pobox-engine-pogemo-args-list
;  '("-p" "~/var/src/pogemo/phrase-dict"
;    "~/var/src/pogemo/user-dict.sample"
;    "~/var/src/pogemo/pogemo-dict"))
;; pogemo サーバが返す候補の数.
;(setq pobox-engine-pogemo-max-cands 100)

;; bc コマンドのパス
;(setq pobox-engine-bc-command "bc")

;; この時間で動的単語補完はタイムアウトします (マイクロ秒)
;(setq pobox-engine-dabbrev-timeout-time 20000)

;; kakasi コマンドのパス
;(setq kakasi-command "/usr/bin/kakasi")
;; kakasi コマンドのオプション
;(setq kakasi-option  "-w")
;; kakasi の代わりに chasen を使用する場合
;(setq kakasi-command "/usr/bin/chasen")
;(setq kakasi-option  "-F'%m '")
;; 調査する周辺の文字数
;(setq kakasi-surrounding-length 20)

;;;; 小松カスタマイズ
;(if (featurep 'xemacs)
;    (global-set-key '(control ?\;) 'pobox-mode)
;  (global-set-key [?\^\;] 'pobox-mode))
;(setq pobox-direct-key-alist
;      '((?. ".")
;        (?, ", ")
;        (?! "!")
;        (?? "?")
;        (?( "(")
;        (?) ")")
;        (?[ "「")
;        (?] "」")
;        ))
(setq pobox-enum-mode t)

TODO

バグ

更新履歴

Ver 1.16.1(2003-04-09)
Ver 1.16.0(2002-11-25)
Ver 1.15.1(2002-09-29)
Ver 1.15.0(2002-05-19)
Ver 1.14.0(2002-05-12)
Ver 1.13.0(2002-01-05)
Ver 1.12.0(2001-11-23)
Ver 1.11.0(2001-11-17)
Ver 1.10.0(2001-11-16)
Ver 1.9.2(2001-10-16)
Ver 1.9.1(2001-10-15)
Ver 1.9(2001-10-15)
Ver 1.8.1(2001-10-10)
Ver 1.8 (2001-10-05)
Ver 1.7 (2001-10-01)
Ver 1.6.1 (2001-10-01)
Ver 1.6 (2001-10-01)
Ver 1.5 (2001-10-01)
Ver 1.4 (2001-09-27)
Ver 1.3 (2001-09-26)
Ver 1.2 (2001-09-12)

ホームページ
天照
ELisp
replace-region
rectangle
ac-mode
accel-key
table
wordnet
urlencode
visible-mark
physical-line-mode
my-keisen-mule
myimage
text-adjust
Palm
Linux & Unix
日記
観測カメラ
Index を閉じる
小松 弘幸 <komatsu@taiyaki.org>
$Id: index.html,v 1.6 2003/05/22 17:09:28 komatsu Exp $