カスタマイズ
出典: Uimwikija
目次 |
[編集] カスタマイズ方法
カスタマイズはuim-prefというGUI設定ツール、もしくは~/.uimファイルに自分で記述して行います。 ~/.uimファイルがない場合はsys-pkgdatadir/default.scmが読まれます。
uim-prefによる設定は~/.uim.d/customs以下のファイルに書き込まれますが、~/.uimに記述した設定はそれを上書きします。 uim-prefの設定を使う場合、~/.uimからuim-prefの設定と矛盾する記述を取り除いてください。
[編集] カスタマイズの注意点
[編集] ~/.uimから変更できない特別な設定
- enable-lazy-loading?
- enabled-im-list
- installed-im-module-list
上記の変数に関する設定は、~/.uimに記述しても変更する事ができません。変更するにはuim-prefで設定するか、sys-pkgdatadir/installed-modules.scmを直接編集してください。
[編集] 文字コード
ファイル中の日本語はすべてEUC-JPで記述してください。例えばvimを使っているなら、ファイルの末尾あたりに
;; vim:ft=scheme:fenc=euc-jp
Emacsであれば
;; Local Variables: ;; mode: scheme ;; coding: euc-jp ;; End:
などと書いておくと便利かもしれません。
[編集] 記述ミス
記述に致命的な不備があっても、エラーメッセージなどを出さず、ただ無視されます。 それらは
$ cat ~/.uim | uim-sh -B
を実行すれば発見できるかもしれません。
[編集] 入力方式のカスタマイズ
[編集] 一般
基本的な書式
(require-module "モジュール名") (define 変数名 値) (define 変数名 値) ...
指定可能なモジュール名を取得するには、uim-shで以下を実行してください。
uim> installed-im-module-list
有効無効を指定する変数では、#tは有効、#fは無効を表します。
(define generic-use-candidate-window? #t)
任意の文字を指定できる変数では文字を"で囲む必要があります。
(define canna-segment-separator "|")
数字を指定する変数ではそのまま。
(define generic-candidate-op-count 1)
決められた文字列を指定する変数では文字列の先頭に'がつきます。
(define default-im-name 'anthy)
[編集] ホットキー
基本的な書式
(require-module "モジュール名")
(define-key キー変数名 '("キー名"))
(define-key キー変数名 '("キー名"))
...
キー名を複数指定する場合はスペースで区切ります。
(define-key generic-on-key? '("a" "b"))
また別のキー変数名を指定する事でキー指定を同期させる事ができます。
(define-key generic-on-key? '("a" "b"))
(define-key anthy-on-key? '(generic-on-key? "c"))
修飾キーは<>で囲みます。
(define-key generic-on-key? '("<Shift>a"))
また修飾キーを一般のキーとして使う時は_keyをつけます
(define-key generic-on-key? '("<Control>Alt_key"))
キー名の表記方法はuim-fepの-Kオプションが役に立ちます。
[編集] キー名(抜粋)
[編集] 一般キー
| uim | Xmodmap |
|---|---|
| " " | "space" |
| "up" | "Up" |
| "down" | "Down" |
| "left" | "Left" |
| "right" | "Right" |
| "home" | "Home" |
| "next" | "Next" |
| "prior" | "Prior" |
| "delete" | "Delete" |
| "end" | "End" |
| "insert" | "Insert" |
| "backspace" | "BackSpace" |
| "return" | "Return" |
| "tab" | "Tab" |
| "F1" | "F1" |
| "F35" | "F35" |
[編集] 修飾キー
| uim | Xmodmap |
|---|---|
| "<Control>" | "Control_L" "Control_R" |
| "<Alt>" | "Alt_L" "Alt_R" |
| "<Shift>" | "Shift_L" "Shift_R" |
| "<Meta>" | "Meta_L" "Meta_R" |
| "<Super>" | "Super_L" "Super_R" |
| "<Hyper>" | "Hyper_L" "Hyper_R" |
[編集] スペシャルキー
| uim | Xmodmap |
|---|---|
| "Multi_key" | "Multi_key" |
| "codeinput" | "Codeinput" |
| "single-candidate" | "SingleCandidate" |
| "multiple-candidate" | "MultipleCandidate" |
| "previous-candidate" | "PreviousCandidate" |
| "Mode_switch" | "Mode_switch" |
| "Kanji" | "Kanji" |
| "Muhenkan" | "Muhenkan" |
| "Henkan_Mode" | "Henkan_Mode" |
| "romaji" | "Romaji" |
| "hiragana" | "Hiragana" |
| "katakana" | "Katakana" |
| "hiragana-katakana" | "Hiragana_Katakana" |
| "zenkaku" | "Zenkaku" |
| "hankaku" | "Hankaku" |
| "zenkaku-hankaku" | "Zenkaku_Hankaku" |
| "touroku" | "Touroku" |
| "massyo" | "Massyo" |
| "kana-lock" | "Kana_Lock" |
| "kana-shift" | "Kana_Shift" |
| "eisu-shift" | "Eisu_Shift" |
| "eisu-toggle | "Eisu_toggle" |
| "Private1 | |
| "Private30" |
[編集] uim-anthy
[編集] 基本的な書式
(require-module "anthy") (define 変数名 値) (define 変数名 値) ...
[編集] Shift+アルファベットキーで大文字アルファベットを直接入力
ftp://ftp.linet.gr.jp/pub/Plamo/Plamo-4.2/contrib/FEP/
--- anthy.scm.orig
+++ anthy.scm
@@ -636,10 +636,7 @@
(list (ja-wide key-str) (ja-wide key-str)
(ja-wide key-str))))
(ustr-insert-elem! (anthy-context-raw-ustr ac) key-str))
- (let* ((key-str (charcode->string
- (if (= rule anthy-input-rule-kana)
- key
- (to-lower-char key))))
+ (let* ((key-str (charcode->string key))
(res (rk-push-key! rkc key-str)))
(if res
(begin
@@ -1105,10 +1102,7 @@
(not (alphabet-char? key))
(not (string-find
(rk-expect rkc)
- (charcode->string
- (if (= rule anthy-input-rule-kana)
- key
- (to-lower-char key))))))
+ (charcode->string key))))
(let ((pend (rk-pending rkc))
(residual-kana (rk-push-key-last! rkc)))
(if residual-kana
@@ -1132,10 +1126,7 @@
(list (ja-wide key-str) (ja-wide key-str)
(ja-wide key-str))))
(ustr-insert-elem! raw-str key-str))
- (let* ((key-str (charcode->string
- (if (= rule anthy-input-rule-kana)
- key
- (to-lower-char key))))
+ (let* ((key-str (charcode->string key))
(pend (rk-pending rkc))
(res (rk-push-key! rkc key-str)))
(if (and res
[編集] 確定前入力文字がある状態でスペースを入力
http://pc10.2ch.net/test/read.cgi/linux/1135968795/581
--- anthy.scm.orig +++ anthy.scm @@ -1092,9 +1092,9 @@ (ustr-cursor-move-end! raw-str)) ;; modifiers (except shift) => ignore - ((and (modifier-key-mask key-state) - (not (shift-key-mask key-state))) - #f) +;; ((and (modifier-key-mask key-state) +;; (not (shift-key-mask key-state))) +;; #f) ((symbol? key) #f)
~/.uimに
(require-module "anthy")
(define ja-rk-rule (append '((((" ") . ())(" " " " " "))) ja-rk-rule))
で、修飾キー+SPC。
[編集] uim-skk
[編集] 基本的な書式
(require-module "skk") (define 変数名 値) (define 変数名 値) ...
[編集] 編集領域のビジュアルスタイルを独自のスタイルに
[編集] 基本的な書式
(require-module "skk")
(define skk-style-スタイル名
'((変数名 . 値)
...
(変数名 . 値)))
(define skk-style 'skk-style-スタイル名)
; 例
(require-module "skk")
(define skk-style-simple
'((skk-preedit-attr-mode-mark . preedit-none)
(skk-preedit-attr-head . preedit-none)
(skk-preedit-attr-okuri . preedit-none)
(skk-preedit-attr-pending-rk . preedit-none)
(skk-preedit-attr-conv-body . preedit-none)
(skk-preedit-attr-conv-okuri . preedit-none)
(skk-preedit-attr-conv-appendix . preedit-none)
(skk-preedit-attr-direct-pending-rk . preedit-none)
(skk-preedit-attr-child-beginning-mark . preedit-none)
(skk-preedit-attr-child-end-mark . preedit-none)
(skk-preedit-attr-child-committed . preedit-none)
(skk-preedit-attr-child-dialog . preedit-none)
(skk-preedit-attr-dcomp . preedit-none)
(skk-child-context-beginning-mark . "[")
(skk-child-context-end-mark . "]")
(skk-show-cursor-on-preedit? . #t)
(skk-show-candidates-with-okuri? . #f)))
(define skk-style 'skk-style-simple)
| 動作 | 変数名 | 指定できる値 |
|---|---|---|
| モードマーク | skk-preedit-attr-mode-mark | preedit-none |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| ▽モードの見出し語 | skk-preedit-attr-head | preedit-none |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| 再帰学習モードの送り仮名 | skk-preedit-attr-okuri | preedit-none |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| ▽モードのローマ字プレフィックス | skk-preedit-attr-pending-rk | preedit-none |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| ▼モードの見出し語 | skk-preedit-attr-conv-body | preedit-none |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| ▼モードの送り仮名 | skk-preedit-attr-conv-okuri | preedit-none |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| skk-preedit-attr-conv-appendix | preedit-none | |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| ローマ字プレフィックス | skk-preedit-attr-direct-pending-rk | preedit-none |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| 再帰学習エリアの先頭 | skk-preedit-attr-child-beginning-mark | preedit-none |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| 再帰学習エリアの終わり | skk-preedit-attr-child-end-mark | preedit-none |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| 再帰学習エリア | skk-preedit-attr-child-committed | preedit-none |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| 単語削除エリア | skk-preedit-attr-child-dialog | preedit-none |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| 動的補完エリア | skk-preedit-attr-dcomp | preedit-none |
| preedit-reverse | ||
| preedit-underline | ||
| preedit-cursor | ||
| preedit-separator | ||
| 再帰学習エリアの先頭を示す文字 | skk-child-context-beginning-mark | "文字" |
| 再帰学習エリアの終わりを示す文字 | skk-child-context-end-mark | |
| ▽モードで文字を入力している時にカーソルを表示するか | skk-show-cursor-on-preedit? | #t |
| #f | ||
| 候補選択ウィンドウ中に表示される候補に送り仮名を付加するか | skk-show-candidates-with-okuri? | #t |
| #f |
[編集] 変換候補の見出しキーを変更する
(require-module "skk")
(define skk-ddskk-like-heading-label-char-list '("a" "s" "d" "f" "j" "k" "l"))
[編集] 自動変換を始める文字を変更する
(require-module "skk")
(define skk-auto-start-henkan-keyword-list
'("を" "、" "。" "." "," "?" "」" "!" ";" ":" ")" ";" ":" ")" "”"
"】" "』" "》" "〉" "}" "]" "〕" "}" "]" "?" "." "," "!"))
[編集] KZIK(Kanji Zutto Ii Kanji)
http://ohac.pun.jp/old_pages/kzik.html
[編集] キャンセルした後に動的補完を表示しない
skk.scmに2箇所ある
;; don't clear dcomp (not compatible with ddskk's behavior) ;;(skk-reset-dcomp-word sc)
のコメントを外してください。
[編集] uim-prime
[編集] 基本的な書式
(require-module "prime")
(define キー変数名 '("キー名")
(define キー変数名 '("キー名")
...
| 動作 | キー変数名 |
|---|---|
| 全角スペース | prime-space-key? |
| 半角スペース | prime-altspace-key? |
[編集] uim.el
[編集] IMのON/OFFでカーソルの色を変化させる
http://d.hatena.ne.jp/higepon/20061002/1159797987
;; uim-mode by higepon ;; ON/OFFでカーソルの色を変更。 ;; ON時に必ず日本語入力モードにする (defadvice uim-this-command-keys (around uim-send-zenkaku-hankaku) (setq ad-return-value `[zenkaku-hankaku])) (defadvice uim-mode (around my-uim-mode) ad-do-it (set-face-background 'cursor (if ad-return-value "blue" "indian red")) (ad-activate-regexp "uim-send-zenkaku-hankaku") (uim-process-input) (ad-deactivate-regexp "uim-send-zenkaku-hankaku")) (ad-activate-regexp "my-uim-mode")
[編集] その他
[編集] 編集領域の配色を独自配色に
[編集] 基本的な書式
(require "util.scm")
(define uim-color-配色名
'((変数 . 値)
...
(変数 . 値)))
(define uim-color 'uim-color-配色名)
; 例
(require "util.scm")
(define uim-color-mono
'((reversed-preedit-foreground . "white")
(reversed-preedit-background . "black")
(separator-foreground . "white")
(separator-background . "black")
(reversed-separator-foreground . "white")
(reversed-separator-background . "black")))
(define uim-color 'uim-color-mono)
| 動作 | 変数名 | 指定できる値 |
|---|---|---|
| reversed-preedit-foreground | "色名" | |
| reversed-preedit-background | ||
| separator-foreground | ||
| separator-background | ||
| reversed-separator-foreground | ||
| reversed-separator-background |
[編集] 3つ以上の入力方式を循環させるホットキーを追加する
;;
;; im-switching
;;
;; I think that current "im-switching by hotkey" feature is not
;; useful. So commented out them to avoid confusion of users.
;; -- YamaKen 2005-02-01
;;(define-custom-group 'im-switching
;; (_ "Input method switching")
;; (_ "long description will be here."))
;;
;;(define-custom 'enable-im-switch #f
;; '(global im-switching)
;; '(boolean)
;; (_ "Enable IM switching by hotkey")
;; (_ "long description will be here."))
;;
;;(define-custom 'switch-im-key '("<Control>Shift_key" "<Shift>Control_key")
;; '(global im-switching)
;; '(key)
;; (_ "IM switching key")
;; (_ "long description will be here."))
;;
;;;; activity dependency
;;(custom-add-hook 'switch-im-key?
;; 'custom-activity-hooks
;; (lambda ()
;; enable-im-switch))
scm/im-custom.scmから上記の部分のコメントを外してください。その後でuim-prefから設定すれば使えるようになります。
[編集] uimに新しいモジュールを追加する
uimアーカイブには含まれていないモジュールが色々と公開されています。どんなモジュールがあるかは、リンクページの「関係ソフトウェア」の項をどうぞ。
幾つか注意点あります。
インストール先に注意してください。 uimが/usr/lib下にインストールされているなら、モジュールも/usr/lib下にインストールする必要があります。
インストールが完了したら、uim-module-managerでuimのモジュールリストへ追加してください。例えばuim-festivalモジュールを追加するには
# uim-module-manager --register festival
後はuim-prefで「使用可能にする入力方式」の有効リストに入れましょう。
[編集] 変換用テーブルのカスタマイズ
[編集] ローマ字入力方式
[編集] 基本的な書式
(require "japanese.scm")
(set! ja-rk-rule (cons '(
(("キー名") . ()) ("ひらがな入力モード" "カタカナ入力モード" "半角カタカナ入力モード")
)
ja-rk-rule))
(require "japanese.scm")
(define ja-rk-rule (append '(
((("キー名") . ()) ("ひらがな入力モード" "カタカナ入力モード" "半角カタカナ入力モード"))
...
((("キー名") . ()) ("ひらがな入力モード" "カタカナ入力モード" "半角カタカナ入力モード")))
ja-rk-rule))
スペースにはja-spaceとja-alnum-spaceという専用の変数が用意されている。
(require "japanese.scm")
(define ja-space '("ひらがな入力モード "カタカナ入力モード" "半角カタカナ入力モード"))
(define ja-alnum-space '("半角英数入力モード" "全角英数入力モード"))
入力後、即座に確定するキーはja-direct-ruleという変数を使う。
(require "japanese.scm")
(set! ja-direct-rule (cons '(
("キー名" "文字")
)
ja-direct-rule))
としてください。
[編集] 「。」を「.」、「、」を「,」としたい
(require "japanese.scm")
(define ja-rk-rule
(append '(
(((",") . ()) ("," "," ","))
(((".") . ()) ("." "." "."))
)
ja-rk-rule))
[編集] 「/」を「・」、「\」を「¥」としたい
(require "japanese.scm")
(define ja-rk-rule
(append '(
((("/") . ()) ("・" "・" "・"))
((("\\") . ()) ("¥" "¥" "¥"))
)
ja-rk-rule))
[編集] "z SPC"で全角スペースを入力する
これはuim-skkでのみ有効です。
(require-module "skk")
(define ja-rk-rule
(append '(
((("z" " "). ())(" " " " " "))
)
ja-rk-rule))
[編集] MS-IME風ローマ字配列
(require "japanese.scm")
(define ja-rk-rule
(append '(
((("c" "a"). ())("か" "カ" "カ"))
((("c" "i"). ())("し" "シ" "シ"))
((("c" "u"). ())("く" "ク" "ク"))
((("c" "e"). ())("せ" "セ" "セ"))
((("c" "o"). ())("そ" "ソ" "ソ"))
((("l" "y" "a"). ())("ゃ" "ャ" "ャ"))
((("l" "y" "i"). ())("ぃ" "ィ" "ィ"))
((("l" "y" "u"). ())("ゅ" "ュ" "ュ"))
((("l" "y" "e"). ())("ぇ" "ェ" "ェ"))
((("l" "y" "o"). ())("ょ" "ョ" "ョ"))
((("n" "'"). ())("ん" "ン" "ン"))
((("q" "a"). ())(("く" "ク" "ク") ("ぁ" "ァ" "ァ")))
((("q" "i"). ())(("く" "ク" "ク") ("ぃ" "ィ" "ィ")))
((("q" "u"). ())("く" "ク" "ク"))
((("q" "e"). ())(("く" "ク" "ク") ("ぇ" "ェ" "ェ")))
((("q" "o"). ())(("く" "ク" "ク") ("ぉ" "ォ" "ォ")))
((("q" "q"). ("q"))("っ" "ッ" "ッ"))
((("v" "y" "i"). ())(("う゛" "ヴ" "ヴ") ("ぃ" "ィ" "ィ")))
((("w" "y" "i"). ())("ゐ" "ヰ" "ィ"))
((("w" "y" "e"). ())("ゑ" "ヱ" "ェ"))
((("x" "n"). ())("ん" "ン" "ン"))
((("x" "x"). ("x"))("っ" "ッ" "ッ"))
)
ja-rk-rule))
[編集] ATOK風ローマ字配列
(require "japanese.scm")
(define ja-rk-rule
(append '(
((("l" "y" "a"). ())("ゃ" "ャ" "ャ"))
((("l" "y" "i"). ())("ぃ" "ィ" "ィ"))
((("l" "y" "u"). ())("ゅ" "ュ" "ュ"))
((("l" "y" "e"). ())("ぇ" "ェ" "ェ"))
((("l" "y" "o"). ())("ょ" "ョ" "ョ"))
((("l" "k" "a"). ())("ヵ" "ヵ" "カ"))
((("l" "k" "e"). ())("ヶ" "ヶ" "ケ"))
((("l" "w" "a"). ())("ゎ" "ヮ" "ワ"))
((("n" "'"). ())("ん" "ン" "ン"))
((("w" "y" "i"). ())("ゐ" "ヰ" "ィ"))
((("w" "y" "e"). ())("ゑ" "ヱ" "ェ"))
)
ja-rk-rule))
[編集] Wnn風ローマ字配列
(require "japanese.scm")
(define ja-rk-rule
(append '(
((("\\" "a"). ())("ぁ" "ァ" "ァ"))
((("\\" "i"). ())("ぃ" "ィ" "ィ"))
((("\\" "u"). ())("ぅ" "ゥ" "ゥ"))
((("\\" "e"). ())("ぇ" "ェ" "ェ"))
((("\\" "o"). ())("ぉ" "ォ" "ォ"))
((("\\" "k" "a"). ())("ヵ" "ヵ" "カ"))
((("\\" "k" "e"). ())("ヶ" "ヶ" "ケ"))
((("\\" "y" "a"). ())("ゃ" "ャ" "ャ"))
((("\\" "y" "u"). ())("ゅ" "ュ" "ュ"))
((("\\" "y" "o"). ())("ょ" "ョ" "ョ"))
((("g" "w" "a"). ())(("ぐ" "グ" "グ") ("ゎ" "ヮ" "ワ")))
((("g" "w" "u"). ())("ぐ" "グ" "グ"))
((("k" "w" "a"). ())(("く" "ク" "ク") ("ゎ" "ヮ" "ワ")))
((("k" "w" "u"). ())("く" "ク" "ク"))
((("l" "a"). ())("ら" "ラ" "ラ"))
((("l" "i"). ())("り" "リ" "リ"))
((("l" "u"). ())("る" "ル" "ル"))
((("l" "e"). ())("れ" "レ" "レ"))
((("l" "o"). ())("ろ" "ロ" "ロ"))
((("m" "m"). ("m"))("ん" "ン" "ン"))
((("n" "'"). ())("ん" "ン" "ン"))
((("t" "c" "h"). ("h" "c"))("っ" "ッ" "ッ"))
((("t" "s" "a"). ())(("つ" "ツ" "ツ") ("ぁ" "ァ" "ァ")))
((("t" "s" "i"). ())(("つ" "ツ" "ツ") ("ぃ" "ィ" "ィ")))
((("t" "s" "e"). ())(("つ" "ツ" "ツ") ("ぇ" "ェ" "ェ")))
((("t" "s" "o"). ())(("つ" "ツ" "ツ") ("ぉ" "ォ" "ォ")))
((("w" "i"). ())("ゐ" "ヰ" "ィ"))
((("w" "e"). ())("ゑ" "ヱ" "ェ"))
((("x" "/"). ())("/" "/" "/"))
((("x" "-"). ())("-" "-" "-"))
((("x" ","). ())("," "," ","))
((("x" "."). ())("." "." "."))
((("x" "~"). ())("~" "~" "~"))
((("x" "^"). ())("^" "^" "^"))
((("x" "\\"). ())("\" "\" "\\"))
((("x" "["). ())("[" "[" "["))
((("x" ";"). ())(";" ";" ";"))
((("x" ":"). ())(":" ":" ":"))
((("x" "]"). ())("]" "]" "]"))
((("x" "/"). ())("/" "/" "/"))
((("x" "d" "i"). ())(("で" "デ" "デ") ("ぃ" "ィ" "ィ")))
((("x" "d" "u"). ())(("ど" "ド" "ド") ("ぅ" "ゥ" "ゥ")))
((("x" "d" "e"). ())(("で" "デ" "デ") ("ぇ" "ェ" "ェ")))
((("x" "d" "o"). ())(("ど" "ド" "ド") ("ぉ" "ォ" "ォ")))
((("x" "t" "i"). ())(("て" "テ" "テ") ("ぃ" "ィ" "ィ")))
((("x" "w" "i"). ())(("う" "ウ" "ウ") ("ぃ" "ィ" "ィ")))
((("x" "w" "e"). ())(("う" "ウ" "ウ") ("ぇ" "ェ" "ェ")))
((("x" "w" "o"). ())(("う" "ウ" "ウ") ("ぉ" "ォ" "ォ")))
)
ja-rk-rule))
[編集] Canna風ローマ字配列
(require "japanese.scm")
(define ja-rk-rule
(append '(
((("\\"). ())("¥" "¥" "\\"))
((("{"). ())("『" "『" "["))
((("}"). ())("』" "』" "]"))
((("@" "-"). ("/"))("-" "-" "-"))
((("@" "/"). ())("・" "・" "・"))
((("@" "\\"). ())("\" "\" "\\"))
((("@" ","). ())("," "," ","))
((("@" "."). ())("." "." "."))
((("@" "~"). ())("~" "~" "~"))
((("@" "|" "|"). ())("∥" "∥" ""))
((("@" "|"). ())("|" "|" "|"))
((("@" "3"). ())("…" "…" ""))
((("@" "2"). ())("‥" "‥" ""))
((("@" "("). ())("(" "(" "("))
((("@" ")"). ())(")" ")" ")"))
((("@" "["). ())("[" "[" "["))
((("@" "]"). ())("]" "]" "]"))
((("@" "{"). ())("{" "{" "{"))
((("@" "}"). ())("}" "}" "}"))
((("c" "a"). ())("か" "カ" "カ"))
((("c" "u"). ())("く" "ク" "ク"))
((("c" "o"). ())("こ" "コ" "コ"))
((("l" "a"). ())("ら" "ラ" "ラ"))
((("l" "i"). ())("り" "リ" "リ"))
((("l" "u"). ())("る" "ル" "ル"))
((("l" "e"). ())("れ" "レ" "レ"))
((("l" "o"). ())("ろ" "ロ" "ロ"))
((("m" "n"). ())("ん" "ン" "ン"))
((("n" "'"). ())("ん" "ン" "ン"))
((("q" "q"). ("q"))("っ" "ッ" "ッ"))
((("t" "c" "h"). ("h" "c"))("っ" "ッ" "ッ"))
((("w" "i"). ())("ゐ" "ヰ" "ィ"))
((("w" "e"). ())("ゑ" "ヱ" "ェ"))
)
ja-rk-rule))
[編集] VJE風ローマ字配列
(require "japanese.scm")
(define ja-rk-rule
(append '(
((("c" "a"). ())("か" "カ" "カ"))
((("c" "i"). ())("し" "シ" "シ"))
((("c" "u"). ())(("き" "キ" "キ") ("ゅ" "ュ" "ュ")))
((("c" "e"). ())("せ" "セ" "セ"))
((("c" "o"). ())("そ" "ソ" "ソ"))
((("g" "w" "a"). ())(("ぐ" "グ" "グ") ("ゎ" "ヮ" "ワ")))
((("g" "w" "u"). ())("ぐ" "グ" "グ"))
((("k" "w" "a"). ())(("く" "ク" "ク") ("ゎ" "ヮ" "ワ")))
((("k" "w" "u"). ())("く" "ク" "ク"))
((("l" "a"). ())("ら" "ラ" "ラ"))
((("l" "i"). ())("り" "リ" "リ"))
((("l" "u"). ())("る" "ル" "ル"))
((("l" "e"). ())("れ" "レ" "レ"))
((("l" "o"). ())("ろ" "ロ" "ロ"))
((("n" "'"). ())("ん" "ン" "ン"))
((("q" "a"). ())(("く" "ク" "ク") ("ぁ" "ァ" "ァ")))
((("q" "i"). ())(("く" "ク" "ク") ("ぃ" "ィ" "ィ")))
((("q" "u"). ())("く" "ク" "ク"))
((("q" "e"). ())(("く" "ク" "ク") ("ぇ" "ェ" "ェ")))
((("q" "o"). ())(("く" "ク" "ク") ("ぉ" "ォ" "ォ")))
((("x" "x"). ("x"))("っ" "ッ" "ッ"))
)
ja-rk-rule))
[編集] Egg風ローマ字配列
ftp://ftp.linet.gr.jp/pub/Plamo/Plamo-4.2/contrib/FEP/
(require "japanese.scm")
(define ja-rk-rule
(append '(
((("g" "s" "e"). ())(("つ" "ツ" "ツ") ("ぇ" "ェ" "ェ")))
((("g" "w" "u"). ())("ぐ" "グ" "グ"))
((("k" "w" "u"). ())("く" "ク" "ク"))
((("l" "a"). ())("ら" "ラ" "ラ"))
((("l" "i"). ())("り" "リ" "リ"))
((("l" "u"). ())("る" "ル" "ル"))
((("l" "e"). ())("れ" "レ" "レ"))
((("l" "o"). ())("ろ" "ロ" "ロ"))
((("n" "'"). ())("ん" "ン" "ン"))
((("w" "i"). ())("ゐ" "ヰ" "ィ"))
((("w" "e"). ())("ゑ" "ヱ" "ェ"))
((("x" "d" "i"). ())(("で" "デ" "デ") ("ぃ" "ィ" "ィ")))
((("x" "d" "u"). ())(("ど" "ド" "ド") ("ぅ" "ゥ" "ゥ")))
((("x" "d" "e"). ())(("で" "デ" "デ") ("ぇ" "ェ" "ェ")))
((("x" "d" "o"). ())(("ど" "ド" "ド") ("ぉ" "ォ" "ォ")))
((("x" "t" "i"). ())(("て" "テ" "テ") ("ぃ" "ィ" "ィ")))
((("x" "w" "i"). ())(("う" "ウ" "ウ") ("ぃ" "ィ" "ィ")))
((("x" "w" "e"). ())(("う" "ウ" "ウ") ("ぇ" "ェ" "ェ")))
((("x" "w" "o"). ())(("う" "ウ" "ウ") ("ぉ" "ォ" "ォ")))
((("z" "!"). ())("●" "●" ""))
((("z" "\""). ())("“" "“" ""))
((("z" "#"). ())("▲" "▲" ""))
((("z" "$"). ())("■" "■" ""))
((("z" "&"). ())("£" "£" ""))
((("z" "'"). ())("‘" "‘" ""))
((("z" "("). ())("【" "【" ""))
((("z" ")"). ())("】" "】" ""))
((("z" "~"). ())("¨" "¨" ""))
((("z" "="). ())("≠" "≠" ""))
((("z" "^"). ())("★" "★" ""))
((("z" "\\"). ())("\" "\" ""))
((("z" "|"). ())("∥" "∥" ""))
((("z" "`"). ())("´" "´" ""))
((("z" "@"). ())("▼" "▼" ""))
((("z" "{"). ())("〔" "〔" ""))
((("z" "+"). ())("±" "±" ""))
((("z" ";"). ())("゛" "゛" ""))
((("z" "*"). ())("×" "×" ""))
((("z" ":"). ())("゜" "゜" ""))
((("z" "}"). ())("〕" "〕" ""))
((("z" "<"). ())("≦" "≦" ""))
((("z" ">"). ())("≧" "≧" ""))
((("z" "?"). ())("∞" "∞" ""))
((("z" "_"). ())("∴" "∴" ""))
((("z" "1"). ())("○" "○" ""))
((("z" "2"). ())("▽" "▽" ""))
((("z" "3"). ())("△" "△" ""))
((("z" "4"). ())("□" "□" ""))
((("z" "5"). ())("◇" "◇" ""))
((("z" "6"). ())("☆" "☆" ""))
((("z" "7"). ())("◎" "◎" ""))
((("z" "8"). ())("¢" "¢" ""))
((("z" "9"). ())("♂" "♂" ""))
((("z" "0"). ())("♀" "♀" ""))
((("z" "b"). ())("°" "°" ""))
((("z" "c"). ())("〇" "〇" ""))
((("z" "d"). ())("ゝ" "ゝ" ""))
((("z" "f"). ())("〃" "〃" ""))
((("z" "g"). ())("‐" "‐" ""))
((("z" "m"). ())("″" "″" ""))
((("z" "n"). ())("′" "′" ""))
((("z" "p"). ())("〒" "〒" ""))
((("z" "q"). ())("《" "《" ""))
((("z" "r"). ())("々" "々" ""))
((("z" "s"). ())("ヽ" "ヽ" ""))
((("z" "t"). ())("〆" "〆" ""))
((("z" "v"). ())("※" "※" ""))
((("z" "w"). ())("》" "》" ""))
((("z" "x"). ())((":" ":" "") ("-" "-" "")))
((("z" "B"). ())("←" "←" ""))
((("z" "C"). ())("℃" "℃" ""))
((("z" "D"). ())("ゞ" "ゞ" ""))
((("z" "F"). ())("→" "→" ""))
((("z" "G"). ())("―" "―" ""))
((("z" "M"). ())("〓" "〓" ""))
((("z" "N"). ())("↓" "↓" ""))
((("z" "P"). ())("↑" "↑" ""))
((("z" "Q"). ())("〈" "〈" ""))
((("z" "R"). ())("仝" "仝" ""))
((("z" "S"). ())("ヾ" "ヾ" ""))
((("z" "T"). ())("§" "§" ""))
((("z" "V"). ())("÷" "÷" ""))
((("z" "W"). ())("〉" "〉" ""))
((("Z" "a"). ())("a" "a" ""))
((("Z" "b"). ())("b" "b" ""))
((("Z" "c"). ())("c" "c" ""))
((("Z" "d"). ())("d" "d" ""))
((("Z" "e"). ())("e" "e" ""))
((("Z" "f"). ())("f" "f" ""))
((("Z" "g"). ())("g" "g" ""))
((("Z" "h"). ())("h" "h" ""))
((("Z" "i"). ())("i" "i" ""))
((("Z" "j"). ())("j" "j" ""))
((("Z" "k"). ())("k" "k" ""))
((("Z" "l"). ())("l" "l" ""))
((("Z" "m"). ())("m" "m" ""))
((("Z" "n"). ())("n" "n" ""))
((("Z" "o"). ())("o" "o" ""))
((("Z" "p"). ())("p" "p" ""))
((("Z" "q"). ())("q" "q" ""))
((("Z" "r"). ())("r" "r" ""))
((("Z" "s"). ())("s" "s" ""))
((("Z" "t"). ())("t" "t" ""))
((("Z" "u"). ())("u" "u" ""))
((("Z" "v"). ())("v" "v" ""))
((("Z" "w"). ())("w" "w" ""))
((("Z" "x"). ())("x" "x" ""))
((("Z" "y"). ())("y" "y" ""))
((("Z" "z"). ())("z" "z" ""))
)
ja-rk-rule))
[編集] SKK風ローマ字配列
(require "japanese.scm")
(define ja-rk-rule
(append '(
((("t" "h" "a"). ())(("て" "テ" "テ") ("ぁ" "ァ" "ァ")))
((("n" "'"). ())("ん" "ン" "ン"))
((("x" "x"). ("x"))("っ" "ッ" "ッ"))
)
ja-rk-rule))
[編集] T-Code風配列
(require "japanese.scm") (require "tcode.scm") (set! ja-rk-rule tcode-rule)
[編集] 無駄な子音を捨てない
ftp://ftp.linet.gr.jp/pub/Plamo/Plamo-4.2/contrib/FEP/
(require "japanese.scm")
(define ja-rk-rule-hoge
(map
(lambda (c)
(list (cons (list c) ()) (list c c c)))
'("b" "c" "d" "f" "g" "h" "j" "k" "l" "m"
"p" "q" "r" "s" "t" "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")))
(if (symbol-bound? 'ja-rk-rule-hoge)
(set! ja-rk-rule (append ja-rk-rule-hoge ja-rk-rule)))
いんてrねt
※以前は map のところが mapcar だったが、scheme処理系が変わったためかmapcarがなくなったため変更。 上記について、FreeBSD のportsのuim-1.4.1_1で確認。
