1

Alt_L + j を「backward-char」に設定し、Alt_R + j を「windmove-left」に設定したいと思います。次の OSX Emacs: 適切な alt だけをバインド解除しますか? 、次の構成を試しました。しかし、うまくいきません。

(setq ns-right-alternate-modifier nil)
(global-set-key (kbd "M-j") 'backward-char) ;; it works
(global-set-key (kbd "Alt_R-j") 'windmove-left) ;; it does not work
(global-set-key (kbd "M_R-j") 'windmove-left) ;; it does not work
(global-set-key (kbd "Meta_R-j") 'windmove-left) ;; it does not work

私のemacsを開くと、次のようなエラーがあります。私はそれがどうあるべきか分かりません。どんな提案でも大歓迎です。

私の .emacs には、上記のステートメント以外のコンテンツはありません。こちらがバージョンです。GNU Emacs 23.1.1 (i486-pc-linux-gnu、GTK + バージョン 2.20.1) の 2012 年 5 月 18 日の roseapple、Debian で変更。

4

2 に答える 2

1

Alt_R と Alt_L はキーであり、修飾子ではありません。これらのキーは (xmodmap などを介して) 修飾子に関連付けられていますが、それらを区別したい場合は、それらを別の修飾子に関連付ける必要があります (たとえば、1 つを "meta" 修飾子に、もう 1 つを "alt" 修飾子に)。Emacs はこの分類をウィンドウ システムに依存しているため、xmodmap を介して行う必要があります。

[?\A-j]それが完了すると、一方と他方のために物事をバインドできるようになります[?\M-j]

于 2013-06-23T19:47:23.547 に答える
1

Emacsに聞いてみてください。キー シーケンスが認識された場合、その前に をC-hk付けると、プラグインする構文が常に得られますkbd

編集:

あなたは間違ったビットを読んでいます。

一番最初の行は、「(キー シーケンス)コマンドを実行します...」と伝えています。

これにより、入力したシーケンスが何であるかがわかります。(同じコマンドが他のキーにもバインドされている可能性があるという事実は、探しているものではありません。)

あなたがしたことは、コマンドを Ctrl + Meta + j にバインドすることです(そして、それを入力すればうまくいくと確信しています)。

ただし、あなたが言ったことから、実際に報告されたキー シーケンスがM-j、右の Alt キーが Meta 修飾子として機能していることを意味することは明らかです (ほとんどの場合、左の Alt キーと同じように)。したがって、成功していない可能性があります。 OSにそれらを異なる方法で処理させる最初のステップで。

于 2013-06-23T16:28:09.900 に答える