2013-09-24 8 views
5

私はウィンドウマネージャとしてdwmを使用し、メタキーを使用しているので、emacsを学習しようとしていて、キーボードのスーパーキーをemacsのメタコマンドに使用したい広範囲に。私はthis pageを試してみてください。emacsのメタコマンド用のユーザスーパーキー

(setq x-meta-keysym 'super) 
(setq x-super-keysym 'meta) 

運がない。理想的には、私は単純にそれらを反転させたいですが、emacsだけです。変数x-meta-keysymとx-super-keysymをC-h vで調べると、コマンドが正しく評価されているように見えます。私はlinuxユーティリティxevでスーパーキーをチェックすると、私が押しているキーがSuper_Lにマップされていることを確認します。

+0

これは私のために働く。しかし、ウィンドウマネージャーはEmacsが見る前にキー押しを傍受します。したがって、あなたのウィンドウマネージャーがスーパーキーをまったく使用すると、Emacsが正しく動作していないように見えるかもしれない競合が発生します。 – Tyler

+0

私はそれらを使うとき、私はM-xを使って何か影響があるかどうかを調べます。スーパーキーで試してみると、バッファにxを挿入するだけです。しかし、メタキーを試してみると、M-xはまだ動作します。だから私はそのWindowsマネージャーとは思わない。 – adiviness

答えて

3

したがって、emacsが端末モードで使用されていない場合、上記のコマンドが機能することが分かります。私はターミナルでそれを排他的に試していました。それがなぜ機能していないのかです。私は端末でそれを修正する方法がわかりませんが、それは私が推測すると十分です。

編集:エマックに達する前にキー押しをしていたのはターミナルエミュレータだったので、キーを押すと実際にemacsになる限り元のコマンドが機能します。

3

私は、ウィンドウマネージャとしてDWM使用するので、メタ(ALT)キーは、ほぼすべての機能を制御するために使用された私の場合は@Tyler

に同意します。 emacsを使用するとき、いくつかのキーバインディングとのメタキーの競合、例えば:私がMfやMbという言葉の周りを移動しているとき(これが私がこのスレッドに来た理由))、この問題で取り除く3つの選択肢を見つけました:

1)の変化は、キーバインドEmacsとあなただけの唯一のXスーパーキーシンボル「メタを使用している場合、それはメタとして両方のキーを可能にしますので、両方のシンボル(変数)が、必要とされているメタキー

(setq x-meta-keysym 'super 
     x-super-keysym 'meta) 

として、スーパーキーを使用しますキー。 x-meta-keysym 'superのみを使用すると、両方とも無効になり、コマンドバッファはs-xが返されます。

2)config.hファイルのメタに対するスーパーキーへのdwmキーバインディングを変更します。メタにスーパーやMOD4にMOD1を交換するキーマップのバインディングをxmodmapをオーバーライドする)http://dwm.suckless.org/customisation/windows_key

/* key definitions */ 
-#define MODKEY Mod1Mask /* meta (ALT) key */ 
+#define MODKEY Mod4Mask /* super (windows or cmd) key */ 

3で見てみましょう(一見リターンをXMODMAP内容を確認し、他のプログラムのキーバインド)

に影響を与えないようにしてください最後に、あなたの指があまり快適でなく、キーストロークにゆっくりと反応する可能性があるので、デフォルトのemacsメタキーを変更しないことをお勧めします。環境に応じてオプション2または3を試してください。