Re: emacs29におけるメタキーの 挙動
- Reply: Hisao Osawa : "Re: emacs29$B$K$*$1$k%a%?%-!<$N5s(B $BF0(B"
- In reply to: Hisao Osawa : "emacs29$B$K$*$1$k%a%?%-!<$N5sF0(B"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 06 Nov 2023 14:21:49 UTC
On Mon, 06 Nov 2023 16:58:38 +0900 Hisao Osawa <osawa.hisao@tbd.t-com.ne.jp> wrote: > 皆様 > > 昨日、FreeBSD 14-Stableを試していて気がついたのですが、 > (FreeBSD 14-Stableとは関係ありません。) > emacs29だとメタキーを使うと余計なキーが押されたことになってしまいます。 > 具体的には、M-v を押すと M-s-v が押されたことになって undefined と怒られます。 > メタキーを押すと必ず M-s が押されたことになっているわけです。 > 検索すると同じような症状で困っている人もいるようで、 > xmodmapでキーの割り当てを再定義していると起こるようです。 > > keycode 64 = Alt_L > keycode 131 = Meta_L > add mod1 = Alt_L > add mod4 = Meta_L > こんな具合にAltとMetaを入れ替えるなどすると起こります。 > > 同じ症状がある方、もし回避策があればお願いします。 > > .emacs中で、 > (define-key key-translation-map (kbd "M-s-v") (kbd "M-v")) > (define-key key-translation-map (kbd "M-s-x") (kbd "M-x")) > ..... > といった具合に再定義するという手もありますが、 > 大量に書かないといけないし、・・・。 > > > 大澤 青木@名古屋です。 自分ではemacsは使っていないので大外しかもしれませんが、Metaキー 絡みだとBug 59600 [1] に emacsのUSキーボード定義に対するパッチが 提案されてますね。 なにぶん2003年から放置されているPRなので現状には全くマッチしない かもしれませんし、アップロードされているものよりこちらのほうが 正しいと紹介されている外部リンクは既にリンク先が存在しないようです。 あとは、ちょっと探ってみたら[2]のページがありました。 ここで不穏なのが、 > Emacs now picks the correct coding-system for X input methods. > Previously, Emacs would use 'locale-coding-system' for input > methods, which could in some circumstances be incorrect, especially > when the input method chose to fall back to some other coding system. というあたりです。 もしかすると、従来は本来と違うものにフォールバック していて事なきを得ていたのが、本来のものが使われるようになったことで 何らかの変換が噛んでしまったという可能性はありそうです。 その場合、 なぜ従来は問題の部分以外使えていたのか?が謎です。 最終的には正しいところまでフォールバックしていたけれど、一旦余計な ところを経由したおかげで要らない変換をバイパスできていたのでしょうか? その他、[3]のページの逃げ道が使えるかどうかと、有用そうな回答が なさそうですが、[4]の症状となにか関係あるかどうか。 Metaキーを 物理的にどのキーに割り当てているか(又は、物理的にMeteキーが 存在するキーボードなのか)でも状況が違ってくるかもしれません。 少なくともOADG106や109のキー配列にはMetaキーは存在しませんし。 [1]以外、「emacs29 meta key」でググって見つかった程度のものです。 # emacsはFreeBSDを触り始めた2.x系の時代に触ってみたことはありますが # 当時のスクロールの挙動(カーソルキーでスクロールしていて追いつか # ないといきなり半画面ジャンプ)でカーソル位置を見失いがちなのに # 閉口して、eeを見つけてこれでいいや、になるまでは編集は当時メインで # 使っていたOS/2上で行ってFATパーティション経由で授受してました。 [1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=59600 [2] https://www.masteringemacs.org/article/whats-new-in-emacs-29-1 [3] https://www.gnu.org/software/emacs/manual/html_node/efaq/No-Meta-key.html [4] https://emacs.stackexchange.com/questions/78135/why-does-emacs-29-translates-meta-to-metahyper-m-somekey-to-h-m-somekey -- Tomoaki AOKI <junchoon@dec.sakura.ne.jp>