Anthy Kana with US Keyboard / Backslash problem
新城@筑波大学情報です。こんにちは。
Anthy をかな打ちで使おうとしています。付属のものでは、キーボー
ドとして JIS 配列を仮定していたので、US 配列で使えるように、
修正してみました。これは、だいたいうまくいったのですが、一部、
うまく行かない所があります。それは、バックスラッシュが絡んだ
あたりです。
(defvar anthy-kana-mode-hiragana-map-us
'(
... ("\\" . "へ") ("\\[" . "べ") ("\\=" . "ぺ") ...
))
「へ」に、「\」を割り当てました。これはうまくいきます。
「べ」に「\[」を割り当てようとしても、うまくいきません。
「ぺ」に「\=」を割り当てようとしても、うまくいきません。
これを解決するための何かヒントはないでしょうか。
とりあえずは、次のような定義を入れてしのいではいます。
("|" . "へ") ("|[" . "べ") ("|=" . "ぺ")
「へ」に「|」を割り当てました。
使っている Anthy は、anthy-9100e です。Emacs は、22.0.91.1
です。よろしくお願いします。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
以下は、anthy-conf.el を少し修正して作った anthy-conf-us.el
というものです。-map というのに -map-us と変更して作りました。
一部もどしたものもあります。使われていない変数もあるかと思い
ます。
----------------------------------------------------------------------
;; anthy-conf-us.el -- Anthy Kana for US layout keyboard
;; Copyright (C) 2002
;; Author: Yusuke Tabata<yusuke@kmc.gr.jp>
;; Modified by Yasushi Shinjo <yas@is.tsukuba.ac.jp>
;; 2008/09/02 17:14:20
;;; Commentary:
;;
(defvar anthy-alt-char-map-us
'(("," ",")
("." ".")))
(defvar anthy-kana-mode-hiragana-map-us
'(
("3" . "あ") ("e" . "い") ("4" . "う") ("5" . "え") ("6" . "お")
("#" . "ぁ") ("E" . "ぃ") ("$" . "ぅ") ("%" . "ぇ") ("^" . "ぉ")
("t" . "か") ("g" . "き") ("h" . "く") ("'" . "け") ("b" . "こ")
("t[" . "が") ("g[" . "ぎ") ("h[" . "ぐ") ("'[" . "げ") ("b[" . "ご")
("x" . "さ") ("d" . "し") ("r" . "す") ("p" . "せ") ("c" . "そ")
("x[" . "ざ") ("d[" . "じ") ("r[" . "ず") ("p[" . "ぜ") ("c[" . "ぞ")
("q" . "た") ("a" . "ち") ("z" . "つ") ("w" . "て") ("s" . "と")
("q[" . "だ") ("a[" . "ぢ") ("z[" . "づ") ("w[" . "で") ("s[" . "ど")
("u" . "な") ("i" . "に") ("1" . "ぬ") ("," . "ね") ("k" . "の")
("f" . "は") ("v" . "ひ") ("2" . "ふ") ("\\" . "へ") ("-" . "ほ")
("f[" . "ば") ("v[" . "び") ("2[" . "ぶ") ("\\[" . "べ") ("f[" . "ぼ")
("f=" . "ぱ") ("v=" . "ぴ") ("2=" . "ぷ") ("\\=" . "ぺ") ("-=" . "ぽ")
("j" . "ま") ("n" . "み") ("]" . "む") ("/" . "め") ("m" . "も")
("7" . "や") ("8" . "ゆ") ("9" . "よ")
("&" . "ゃ") ("*" . "ゅ") ("(" . "ょ")
("o" . "ら") ("l" . "り") ("." . "る") (";" . "れ") ("\"" . "ろ")
("0" . "わ") (")" . "を")
;; 困ったことに バックスラッシュと円を区別する方法がわからない
("}" . "ー") ("_" . "ろ") ("<" . "、") (">" . "。") ("?" . "・")
("Z" . "っ") ("y" . "ん")
("!" . "!") ("@" . "@") ("+" . "「") ("{" . "」") ("`" . "`")
("~" . "〜") ("[" . "゛") ("=" . "゜")
("|" . "へ") ("|[" . "べ") ("|=" . "ぺ") (":" . "れ")
))
(defvar anthy-kana-mode-katakana-map-us
'(
("3" . "ア") ("e" . "イ") ("4" . "ウ") ("5" . "エ") ("6" . "オ")
("#" . "ァ") ("E" . "ィ") ("$" . "ゥ") ("%" . "ェ") ("^" . "ォ")
("t" . "カ") ("g" . "キ") ("h" . "ク") ("'" . "ケ") ("b" . "コ")
("t[" . "ガ") ("g[" . "ギ") ("h[" . "グ") ("'[" . "ゲ") ("b[" . "ゴ")
("x" . "サ") ("d" . "シ") ("r" . "ス") ("p" . "セ") ("c" . "ソ")
("x[" . "ザ") ("d[" . "ジ") ("r[" . "ズ") ("p[" . "ゼ") ("c[" . "ゾ")
("q" . "タ") ("a" . "チ") ("z" . "ツ") ("w" . "テ") ("s" . "ト")
("q[" . "ダ") ("a[" . "ヂ") ("z[" . "ヅ") ("w[" . "デ") ("s[" . "ド")
("u" . "ナ") ("i" . "ニ") ("1" . "ヌ") ("," . "ネ") ("k" . "ノ")
("f" . "ハ") ("v" . "ヒ") ("2" . "フ") ("\\" . "ヘ") ("-" . "ホ")
("f[" . "バ") ("v[" . "ビ") ("2[" . "ブ") ("\\[" . "ベ") ("-[" . "ボ")
("f=" . "パ") ("v=" . "ピ") ("2=" . "プ") ("\\=" . "ペ") ("-=" . "ポ")
("j" . "マ") ("n" . "ミ") ("]" . "ム") ("/" . "メ") ("m" . "モ")
("7" . "ヤ") ("8" . "ユ") ("9" . "ヨ")
("&" . "ャ") ("(" . "ュ") (")" . "ョ")
("o" . "ラ") ("l" . "リ") ("." . "ル") (";" . "レ") ("\"" . "ロ")
("0" . "ワ") (")" . "ヲ")
;; 困ったことに バックスラッシュと円を区別する方法がわからない
("}" . "ー") ("_" . "ロ") ("<" . "、") (">" . "。") ("?" . "・")
("Z" . "ッ") ("y" . "ン")
("!" . "!") ("@" . "@") ("+" . "「") ("{" . "」") ("`" . "`")
("~" . "〜") ("[" . "゛") ("=" . "゜")
("|" . "ヘ") ("|[" . "ベ") ("|=" . "ペ") (":" . "レ")
))
;;
;; mapの変更
;;
(defun anthy-send-map-us-edit-command (mapno key str)
(if (not (stringp key))
(setq key (char-to-string key)))
(if (not (stringp str))
(setq str (char-to-string str)))
(anthy-send-recv-command
(concat " MAP_EDIT " (int-to-string mapno)
" " key " " str "\n")))
(defun anthy-change-hiragana-map-us (key str)
(anthy-send-map-us-edit-command 2 key str))
(defun anthy-change-katakana-map-us (key str)
(anthy-send-map-us-edit-command 3 key str))
(defun anthy-load-hiragana-map-us (map)
(mapcar (lambda (x)
(let ((key (car x))
(str (cadr x)))
(anthy-change-hiragana-map-us key str))) map))
(defun anthy-clear-map-us ()
(anthy-send-recv-command
" MAP_CLEAR 0\n"))
;;
;; toggleの変更
;;
(defun anthy-send-change-toggle-command (str)
(anthy-send-recv-command
(concat " CHANGE_TOGGLE " str "\n")))
;; should disable toggle
;; (ローマ字ではなくて)かなモードにする
(defun anthy-kana-map-us-mode ()
(setq anthy-rkmap-keybind
'(
;; \C-p
(("hiragana" . 16) . "katakana")
(("katakana" . 16) . "hiragana")))
(define-key anthy-mode-map (char-to-string 16) 'anthy-insert)
(anthy-send-recv-command " SET_PREEDIT_MODE 1\n")
(anthy-send-change-toggle-command "!")
(anthy-clear-map-us)
(mapcar (lambda (x)
(anthy-change-hiragana-map-us (car x) (cdr x)))
anthy-kana-mode-hiragana-map-us)
(mapcar (lambda (x)
(anthy-change-katakana-map-us (car x) (cdr x)))
anthy-kana-mode-katakana-map-us))
;;
(defun anthy-set-break-into-roman (flag)
"読みを入力中にバックスペースを打つとローマ字までバラバラにする"
(anthy-send-recv-command
(if flag
" BREAK_INTO_ROMAN 1\n"
" BREAK_INTO_ROMAN 0\n")))
(provide 'anthy-conf-us)
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735