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

[plamo:07392] Re: Muleにおけるcannaのキー設定について



From: "Nobuyuki Kakiuchi" <nobu@kaki.oc.to>
Message-Id: <000701c03c76$9cb52aa0$8301a8c0@notepc>

> 上記のエントリは既に/etc/termcapのkonのところにありました。
> それでもMuleからCannaを利用する際に変換範囲を矢印キーで伸縮しようとしても
> 「Cとか表示されるだけで変換できません。

あ、そうでした。canna/Mule は他のcannaクライアントと異なり、一部自前で
キーを見ています。ただ、最終的には .canna の設定に行くのですが。

あと、canna-modeはデフォルトでは自前でエスケープシーケンスを含めたキー
バインドをしてしまいますので、termcapの設定に関わらず特殊キーのイベン
トを拾わせてもらえないですね。

で、実際には以下のような感じになると思います。以前cannaを使っていた頃
の設定を掘り出してみました。ちょっと余計なところがあると思いますが :-)。
# Emacs19だと、若干修正がいるでしょう。

で、.cannaで、define-keyのいちばん右にあるキーに対して、cannaの各機能
を割り当てていくことになります。もちろん、通常のカーソルキーに対して何
か機能を割り当てるなら、これに対して .emacsに define-key してあげましょ
う。

なにぶん大昔の設定ですので、そのままでは動かないかもしれませんが、ご参
考までに。

(setq canna-do-keybind-for-functionkeys nil)
;; Emacs20/XEmacs20以降?
(select-input-method "japanese-canna")

(canna)

(cond (window-system
       (setq canna-underline t)
       (setq canna-with-fences nil)
       )
      (t
       (setq canna-underline nil)
       (setq canna-with-fences t)
       ))

(setq canna-save-undo-text-predicate
      '(lambda (s) (> (length (car s)) 2)))
(setq canna-undo-hook			; run-hooksじゃないのでsetq
      '(lambda ()
	 (message "再変換します....")
	 (canna-do-function canna-func-henkan)
	 ))

(substitute-key-definition 'undo 'canna-undo global-map)

(global-unset-key [kanji])
(global-unset-key "\e[")		; unbind all fn-key sequences
(global-set-key "\e[[["             'backward-paragraph)
(global-set-key '(f1)               'canna-extend-mode)

;; Emacs19??
;(global-set-key "\C-o"      'canna-toggle-japanese-mode)
;(global-set-key '(muhenkan)   'canna-toggle-japanese-mode)
;(global-set-key '(control muhenkan) 'canna-toggle-japanese-mode)

;; Emacs20/XEmacs20以降?
(global-set-key "\C-o"              'toggle-input-method)
(global-set-key '(muhenkan)         'toggle-input-method)
(global-set-key '(control muhenkan) 'toggle-input-method)

(define-key isearch-mode-map "\C-\\"             'isearch-fep-canna)
(define-key isearch-mode-map "\C-o"              'isearch-fep-canna)
(define-key isearch-mode-map '(muhenkan)         'isearch-fep-canna)
(define-key isearch-mode-map '(control muhenkan) 'isearch-fep-canna)

(define-key canna-mode-map            "\e" nil)
(define-key canna-minibuffer-mode-map "\e" nil)

;; かんな/Emacsは、function-keyの定義を取れないので、
;; 一般のkey-bindのaliasとして使うようにする。
(define-key canna-mode-map '(shift left)       "\C-i")
(define-key canna-mode-map '(shift right)      "\C-o")
(define-key canna-mode-map '(kanji)            "\C-\]")
(define-key canna-mode-map '(shift kanji)      "\C-_")
(define-key canna-mode-map '(control kanji)    "\C-w")
(define-key canna-mode-map '(muhenkan)         "\C-r")
(define-key canna-mode-map '(shift muhenkan)   "\C-t")
(define-key canna-mode-map '(control muhenkan) "\C-o")

(define-key canna-minibuffer-mode-map '(shift left)       "\C-i")
(define-key canna-minibuffer-mode-map '(shift right)      "\C-o")
(define-key canna-minibuffer-mode-map '(kanji)            "\C-\]")
(define-key canna-minibuffer-mode-map '(shift kanji)      "\C-_")
(define-key canna-minibuffer-mode-map '(control kanji)    "\C-w")
(define-key canna-minibuffer-mode-map '(muhenkan)         "\C-r")
(define-key canna-minibuffer-mode-map '(shift muhenkan)   "\C-t")
(define-key canna-minibuffer-mode-map '(control muhenkan) "\C-o")

;; user-modeのkey-bindも取れないので、
;; canna-toggle-japanese-mode実行時にhenkan-modeにする。
(defun new:canna-toggle-japanese-mode ()
  (interactive)
  (canna-change-mode canna-mode-henkan-mode)
  (org:canna-toggle-japanese-mode)
  )

(cond ((not (fboundp 'org:canna-toggle-japanese-mode))
       (fset 'org:canna-toggle-japanese-mode
	     (symbol-function 'canna-toggle-japanese-mode))
       (fset 'canna-toggle-japanese-mode
	     (symbol-function 'new:canna-toggle-japanese-mode)))
      )

;; XEmacsのみ(face対応)
(defun canna:henkan-attr-on (start end)
  (if (overlayp canna:*henkan-overlay*)
      (move-overlay canna:*henkan-overlay* start end)
    (overlay-put (setq canna:*henkan-overlay*
		       (make-overlay start end nil nil t))
		 'face
		 (if canna:color-p 'attr-taishou 'zmacs-region))
    )
  )

_______________________________
田原 俊一   jado@flowernet.gr.jp, shunichi_tahara@zenrin.co.jp
                                  http://flowernet.gr.jp/jado/
FingerPrint: 16 9E 70 3B 05 86 5D 08 - B8 4C 47 3A E7 E9 8E D9
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

References
[plamo:07379] Muleにおけるcannaのキー設定について, nobu
[plamo:07386] Re: Muleにおけるcannaのキー設定について, Shun-ichi TAHARA (田原 俊一)
[plamo:07390] Re: Muleにおけるcannaのキー設定について, Nobuyuki Kakiuchi

[検索ページ] [メール一覧]
Plamo ML 公開システム