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

[debian-users:24604] Re: canna 変換中の矢印キー (?)



新保と申します. 

  >>としましたが、これは以前にも試してダメでした。X では OK なので termcap
  >>(terminfo) の問題のような気もするのですが、もし emacs-dl-canna の仕様
  >>なのでしたら諦めますが。 
  >> 
  >>> 多分あまりkon+cannaで使っている人がいないからだれも気づいていないと
  >>> 思うんですが、

~/.canna 中で, こう書いたらどうでしょうか?

(if (equal (getenv "TERM") "kon")
    (progn
      (global-set-key "\Escape[C" 'forward)	; right-arrow
      (global-set-key "\Escape[D" 'backward)	; left-arrow
    ))

こちらの環境では, emacs20-dl (20.7-5) + kon2 (0.3.9b-3) 上で, 
これで左右の矢印キーが使えました. 
# 他に ~/.emacs 中で, canna-mode-map を書き換える方法もあります.

(以下, 少々脱線しているかもしれませんが,)

こうすれば emacs 中では ok になるのですが, 
jvim (3.0-2.0-2), jed-canna (0.98.7.j055-2) では
あいかわらずファンクションキー, カーソルキーが使えません 
(kon, kterm, rxvt を問わず). 

これは別に原因があって, slink, potato に納められている
libcanna1g パッケージ (3.5b2-23, -24, -25) が, 
libcanna1g 内部のキーコード >= 128 のキー 
(ほとんどのカーソルキー, ファンクションキーが該当) 
を正しく扱えないからです. 
これについては以前 debian.org の BTS 宛に報告しました. 

  Bug#58667 ( http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=58667 )
  # まだ対処していただいてないようですが, よろしくお願いします >メンテナ様

当方では, この報告の中につけた patch を当てて再コンパイルすると, 
~/.canna に書いた

(global-set-key "\Left" 'backward)
(global-set-key "\Right" 'forward)
(global-set-key "\S-Left" 'shrink)
(global-set-key "\S-Right" 'extend)

といった記述を jvim, jed-canna で有効にすることができています. 
# もっとも \S-Left, \S-Right は, terminfo でサポートされてないと
# だめですが. rxvt-ml は ok, kterm はだめで terminfo と X の
# リソース定義が必要 (?). kon もそのままではだめだと思います. 

本当は, 上記の patch を libcanna1g にあてた上で, 
/usr/share/emacs/site-lisp/dl-canna/canna.el が function-key-map 
を見てそれに見合った内部キーコードを libcanna に渡すような設計に
なっていればきれいに解決すると思うんですが, 残念ながらそうは
なっていないので (apel を使用しているせい?), 別々に対処することに
なってしまいます...

新保 仁 <shimbo@xxxxxxxxxxxxxxxxx>