お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2007-02-28 17:57:11

mizuno
管理者
From: Kyoto
登録日: 2007-02-28

Anthy-elでマップを再定義した文字が化ける

現象
anthy-el を用いて、Emacs 上で日本語入力をしています。
.emacs で anthy-change-hiragana-map を使いキーと文字を再定義すると
再定義した文字を入力する際に文字化けしてしまいます。

状況
anthy-el ではデフォルトで "l" キーで英数モードに切替え
"xtu"、"xyu" などで "っ"、"ゅ" などの小さい文字を入力しますが
このバインドが好みでないため、まず anthy.el を書き換えて
英数モードに入るためのキーを l から x に変更しました。
バイトコンパイル後、.emacs に
(anthy-change-hiragana-map "lo" "ぉ")
(anthy-change-hiragana-map "ltu" "っ")
等を定義しました。
キーバインドは想定通りになっているのですが、この状態で "ltu" と入力すると
表示が ",A$C(B" と化けてしまいます。
(それ以外の日本語は問題なく表示できています。この文章も Emacs で書いています)
環境のロケールは ja_JP.UTF-8 で、.emacs の文字コードも utf-8 になっております。
ちなみに .emacs の文字コードを euc にしてみても、状況は変わりませんでした

デフォルトの状態では何も問題はなく、anthy-change-hiragana-map で
定義を行うと文字に関係なく化けるようになるため、ここに問題が
あると思うのですが、対処方法がわかりません。
また、Vinelinux や Fedora Core では同じ設定ファイルで問題なく動作しています。

調べるべき場所のアドバイス等がありましたら、教えてくださいませ。
よろしくお願いします。

オフライン

 

#2 2007-03-01 01:48:32

dek
メンバ
登録日: 2007-02-12

Re: Anthy-elでマップを再定義した文字が化ける

こんばんは。
anthy-elの書き換えはせず、~/.emacsに
(anthy-change-hiragana-map "zo" "ぉ")
などとしても再現するので、anthy.elを書き換えたことが原因ではないですね。

/usr/share/emacs/site-lisp/anthy以下を眺める限り、anthy-elはanthy-agentに渡す日本語文字列を
ISO-2022-JPで統一していて、~/.emacsに書かれたUTF-8の文字列を無理矢理ISO-2022-JPで読み取るのが
文字化けの原因と思われます。
anthy-agentから先がどうなっているかは調べていないので大したことは言えませんが
ここは元コードをいじらず

(anthy-change-hiragana-map "lo" "ぉ")
(anthy-change-hiragana-map "ltu" "っ")
......

と列挙したISO-2022-JPの別ファイルを用意して、Emacs起動時に読み込ませるくらいで
ちょうどいいように思いますよ。

オフライン

 

#3 2007-03-01 11:19:38

mizuno
管理者
From: Kyoto
登録日: 2007-02-28

Re: Anthy-elでマップを再定義した文字が化ける

水野です。リプライありがとうございます。

.emacs の最後に

;; anthy-el 用設定を分離
(if (file-exists-p (expand-file-name "~/.emacs.anthy"))
    (load (expand-file-name "~/.emacs.anthy") nil t nil))

を追記し、iso-2022-jp の .emacs.anthy を用意して、その中に

;;Anthyキーバインド設定
(require 'anthy)
(setq anthy-wide-space " ")
(anthy-change-hiragana-map "la" "ぁ")
(anthy-change-hiragana-map "li" "ぃ")
(以下略)

とすることで解決しました。

普段使っている Vinelinux から設定ファイルをそのまま持ってきて使ったのですが
Ubuntu だけで問題がおきたということは、Ubuntu の anthy-el は、他のディストリビューションと
渡す文字の扱いが違うのですかね。
ともかく、解決してよかったです。どうもありがとうございました。

オフライン

 

Board footer

Powered by FluxBB