mule-ja
[Top][All Lists]
Advanced

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

[mule-ja:15] Meta modified input behaviour on tty with JIS keyboard-codi


From: Ikumi Keita
Subject: [mule-ja:15] Meta modified input behaviour on tty with JIS keyboard-coding-system.
Date: Mon, 08 Oct 2012 23:29:46 +0900

  立て続けにすみません。

  以前は、-nw の emacs で keyboard-coding-system を iso-2022-jp に変更す
ると、M-x などの meta 修飾入力を行うことができました(例えば、kterm だと
Alt キーを押しながら x で M-x になった)。が、最近の emacs では(今実際
に起動して調べたら emacs 22 辺りからのようです。あまり「最近」とも言えな
いですね)、それは M-x などとは認識されず、エラーや undefined として扱わ
れるようになりました。
  emacs 24.2 での set-keyboard-coding-system の処理を見る限り、直接の原
因は、keyboard-coding-system を iso-2022-jp に変更する際に
input meta mode の復元を行わないからのようで、そこでの処理を参考に、
(set-input-meta-mode (car
  (terminal-parameter nil 'keyboard-coding-saved-meta-mode))
を実行してみると、M-x 等の入力を受け付けるようになりました
(LANG=ja_JP.eucJP の環境なので、起動時に自動的に keyboard-coding-system
が japanese-iso-8bit に設定されて、そのとき saved-meta-mode への保存が起
こっているようです)。
  keyboard-coding-system を 7bit にしておきながら 8bit の入力を行うことが
おかしいので、meta 入力に対する動作は不定、保証外ということでも問題はない
と思いますが、「変えたつもりはなかったが変わってしまっていた」のかもしれ
ないのでこれも一応報告しておきます。(別に困っているわけではありません。
emacs を -nw で使うことはほとんどないですし、-nw で Alt キーとの同時押し
が使いたければ、kterm の resouce 設定で ESC で始まる等価な key sequence
を発生させることも可能ですから。現状でも不都合はないです)

  それで、こちらの方がむしろ本題かもしれませんが、この件を調べていて bug
と思しき点に一つ気づきました。emacs 24.2 の set-keyboard-coding-system の
中で、2箇所ある set-input-meta-mode の呼び出しは、引数に terminal を追加
すべきではないでしょうか。C-h f set-input-meta-mode によれば

set-input-meta-mode is a built-in function in `C source code'.

(set-input-meta-mode META &optional TERMINAL)

で、第2引数に terminal を指定できることになっているので。

                                                井汲 景太



reply via email to

[Prev in Thread] Current Thread [Next in Thread]