Emacs의 슈퍼/하이퍼 수정자에서 올바른 제어 키를 변경하는 방법

Emacs의 슈퍼/하이퍼 수정자에서 올바른 제어 키를 변경하는 방법

controlSolaris와 Linux에서 오른쪽 키를 "super" 수정자로 변경하고 오른쪽 alt키를 "alt" 수정자(메타 아님)로 변경하고 싶습니다 (Windows에서 AutoHotKey를 사용하여 이를 수행하는 방법을 알고 있기 때문입니다). 나는 이 작업을 수행하는 방법을 알고 있습니다.

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

그런데 어떻게 지정해야 할지 모르겠어요.오른쪽 control열쇠 또는오른쪽 alt키(Windows 키보다 입력하기 더 편리함). 그것이 emacs에서 바로 이루어질 수 있다면(그리고 Windows에서도 AutoHotKey를 피할 수 있다면) 좋을 것입니다. 그렇지 않으면 AutoHotKey가 수행하는 것과 동일한 생각을 Solaris 및 Linux에서 수행할 수 있는 것이 무엇인지 알고 싶습니다.

답변1

나는 Emacs에서 이것을 할 수 있는 어떤 방법도 모릅니다. 내가 아는 한, 두 Ctrl키는 동일하게 취급됩니다. 일부 OS의 경우 키심을 변경할 수 있는 옵션이 있지만 R-AltX Windows의 경우에는 해당 옵션이 없습니다. 변수 를 사용하여 x-alt-keysym키심을 변경할 수 있습니다.둘 다 Alt열쇠.

를 사용하여 X Windows의 각 키에 바인딩된 수정자를 변경할 수 있습니다 xmodmap. 아치 위키기사그 용도를 다룹니다. 원래:

  • 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-Ctrl로 변경하려면 super다음과 같이 작동해야 합니다.

        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처리를 중단합니다 . 그런 다음 키는 Emacs(및 as )에서 사용하기 위한 수정자로 사용할 수 있습니다 . 나는 이것을 시도한 적이 없습니다.AltmetaR-AltaltL-Altmeta

    그래도 작동하지 않으면 바인딩할 사용되지 않은 수정자를 선택해야 합니다 R-Alt. hyper. 그런 다음 Emacs 바인딩에서 이를 사용할 수 있습니다.

  • 파일을 다른 이름으로 저장 ~/.Xmodmap하고 실행 중인 변경 사항을 활성화할 수 있습니다.

    xmodmap ~/.Xmodmap
    

    많은 데스크탑 환경에서는 ~/.Xmodmap시작 시 자동으로 실행됩니다. 그렇지 않은 경우 파일에서 실행해야 합니다 ~/.xinitrc.

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

관련 정보