web-dev-qa-db-ja.com

emacsのスーパー/ハイパーモディファイアで右のコントロールキーを変更する方法

権利を変更したい control 「スーパー」修飾子と右にキーを押します alt SolarisおよびLinuxの「alt」修飾子(メタではない)にキー入力します(AutoHotKeyを使用してWindowsでそれを行う方法を知っているため)。私はこれを行う方法を知っています:

(define-key local-function-key-map (kbd "<rwindow>") 'event-apply-super-modifier

しかし、私はを指定する方法がわかりません control キーまたは alt キー(Windowsキーよりも入力が便利です)。それがemacsで直接実行できる場合(そしてWindowsでもAutoHotKeyを回避できる場合)、それは素晴らしいことです。それ以外の場合は、SolarisとLinuxで何が達成できるかを知りたいのですが、AutoHotKeyと同じように考えています。

1
Adrian Chira

私はEmacsでこれを行う方法を知りません。私の知る限り、2つは Ctrl キーは同じように扱われます。一部のOSでは、のキーシムを変更するオプションがあります R-Alt しかし、XWindows用のものは知りません。 x-alt-keysym変数を使用して、bothのキー記号を変更できることに注意してください。 Alt キー。

xmodmapを使用して、XWindowsの各キーにバインドされている修飾子を変更できます。 Arch Wiki article はその使用法をカバーしています。基本的に:

  • xmodmap -pmと入力して、修飾子とそれに割り当てられたキーのリストを出力します。

        shift       Shift_L (0x32),  Shift_R (0x3e)
        lock
        control     Control_L (0x42),  Control_R (0x69)
        mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
        mod4        Super_L (0x85),  Super_R (0x86) ....
    
  • 次に、変更する修飾子をクリアして再バインドするファイルを作成します。例えば。変更する R-Ctrlsuperに、これは機能するはずです:

        clear super
        add super = Super_L Super_R Control_R
        clear control
        add control = Control_L
    
  • 処理するには、 Alt キー、あなたは使用することができます:

        clear meta
        add meta = Alt_L
    

    これにより、Emacsは既存のmeta修飾子を見つけて、 Alt デフォルトではmetaとしてキーを入力します。そうして R-Alt キーは、Emacsで使用するためのalt修飾子として使用できます(および L-Altmetaとして)。私はこれを試したことがありません。

    それが機能しない場合は、バインドするために未使用の修飾子を選択する必要があります R-Alt に、例えば。 hyper。次に、それをEmacsバインディングで使用できます。

  • ファイルを~/.Xmodmapとして保存し、実行している変更をアクティブ化できます

    xmodmap ~/.Xmodmap
    

    多くのデスクトップ環境では、~/.Xmodmapは起動時に自動的に実行されます。そうでない場合は、~/.xinitrcファイルで実行する必要があります。

    if [ -s ~/.Xmodmap ]; then
        xmodmap ~/.Xmodmap
    fi
    
2
pyrocrasty