
我想在 Solaris 和 Linux 中將control右鍵更改為“super”修飾符,將右鍵更改alt為“alt”修飾符(不是 Meta)(因為我知道如何在 Windows 中使用 AutoHotKey 執行此操作)。我知道該怎麼做:
(define-key local-function-key-map (kbd "<rwindow>") 'event-apply-super-modifier
但我不知道如何指定正確的 control鍵或正確的 alt鍵(比 Windows 鍵更方便鍵入)。如果這可以直接在 emacs 中完成(並且避免在 Windows 中使用 AutoHotKey)那就太好了。否則我想知道在 Solaris 和 Linux 中可以實現與 AutoHotKey 相同的功能。
答案1
我不知道有什麼方法可以在 Emacs 中做到這一點。據我所知,這兩個Ctrl鍵的處理方式是相同的。對於某些作業系統,有一個選項可以更改鍵符號,R-Alt但我不知道有一個適用於 X 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
修飾符並停止將這些Alt鍵視為meta
預設值。然後該R-Alt鍵將可用作alt
Emacs 中使用的修飾符(以及L-Altasmeta
)。我從來沒有嘗試過這個。如果這不起作用,您將必須選擇一個未使用的修飾符來綁定R-Alt,例如。
hyper
。然後您可以在 Emacs 綁定中使用它。您可以啟動更改,將文件另存為
~/.Xmodmap
並運行xmodmap ~/.Xmodmap
在許多桌面環境中,
~/.Xmodmap
都會在啟動時自動執行。如果沒有,您必須在文件中運行它~/.xinitrc
:if [ -s ~/.Xmodmap ]; then xmodmap ~/.Xmodmap fi