[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:11554] Re: [Again] Canna kana input



 こんにちは。島田です。


On Sat, 2 Jan 1999 23:19:08 +0900
Hiroyuki Shimada <shimaden@xxxxxxxxxxx> wrote:

>  C モードと C++ モードでは 'ね' が ',' に、'「' が '{' に、'」' が '}' 
> に、それぞれ化けて入力されてしまいます。
>  Fudamental モードや Emacs-Lisp モードでは、まったく正常に入力できました。

 Emacs20 + 106 keyboard で kana.cbp を使って、cc-mode で特定のかなが入力
できない件です。
 c-mode.elc、cc-mode.elc というバイト・コンパイル済みのものがあったので、
Hamm Source CD の emacs20_20.2.orig.tar.gz からソースを調べてみました。

 c-mode.el の 41 行目から次のような記述がありました。

(define-key c-mode-map "{" 'electric-c-brace)
(define-key c-mode-map "}" 'electric-c-brace)
(define-key c-mode-map ";" 'electric-c-semi)
(define-key c-mode-map "#" 'electric-c-sharp-sign)
(define-key c-mode-map ":" 'electric-c-terminator)
(define-key c-mode-map "\e\C-h" 'mark-c-function)
(define-key c-mode-map "\e\C-q" 'indent-c-exp)
(define-key c-mode-map "\ea" 'c-beginning-of-statement)
(define-key c-mode-map "\ee" 'c-end-of-statement)
(define-key c-mode-map "\C-c\C-n" 'c-forward-conditional)
(define-key c-mode-map "\C-c\C-p" 'c-backward-conditional)
(define-key c-mode-map "\C-c\C-u" 'c-up-conditional)
(define-key c-mode-map "\177" 'backward-delete-char-untabify)
(define-key c-mode-map "\t" 'c-indent-command)

 Canna 入力モード時、C mode、C++ mode において:

1. '「' を押すと '{' が入力されます。
    (define-key c-mode-map "{" 'electric-c-brace) の影響?

2. '」' を押すと '}' が入力されます。
    (define-key c-mode-map "}" 'electric-c-brace) の影響?

3. 'れ' を押すと ';' + '\n' が入力されます。
    (define-key c-mode-map ";" 'electric-c-semi) の影響?

4. SHIFT-'あ' を押すと 'ぁ' ではなく、'#' が入力されます。
    (define-key c-mode-map "#" 'electric-c-sharp-sign) の影響?

5. 'け' を押すと ':' が入力されます。
    (define-key c-mode-map ":" 'electric-c-terminator) の影響?

6. 'ね' を押すと ',' が入力されます。
    なぜ???


 見当の段階なんですが、ここまで調べられました。
 Emacs-Lisp の構文がよくわからないので、'eletcric-c-brace などが何の意味
かも、どう書き換えればいいのかもわかりません。

 よく add-hook というのを見かけますが、ここで c-mode.elc での
define-key を無効にしてしまうか、別の設定にしてしまうかできるのでしょうか。

 それとも、この c-mode.el を書き換えてバイト・コンパイルし直すしかないの
でしょうか。

 できれば、~/.emacs の中でできるような方法がいいのですが、何かよい方法は
ありませんでしょうか。

 よろしくお願いいたします。


----------------------------------------------------------------------
Mail: shimaden@xxxxxxxxxxx
Home Page: http://www.annie.ne.jp/~shimaden/
島田博幸
Hiroyuki Shimada
----------------------------------------------------------------------