Переопределение ключей в Emacs для Windows - PullRequest
5 голосов
/ 14 сентября 2010

Я использую свои клавиши управления в качестве дополнительных клавиш управления в Mac OS X (и я считаю, что клавиатура космических кадетов имела такую ​​конфигурацию). Я хочу эмулировать это на своих машинах с Windows, переключив Alt на Ctrl и клавишу Windows на Alt в Emacs. Это возможно? Я нашел этот пост , который предлагает что-то вроде

(setq w32-pass-lwindow-to-system nil 
      w32-pass-rwindow-to-system nil 
      w32-pass-apps-to-system nil 
      w32-lwindow-modifier 'super ;; Left Windows key 
      w32-rwindow-modifier 'super ;; Right Windows key 
      w32-apps-modifier 'hyper) ;; Menu key

для получения ключей super и hyper при нажатии клавиши Windows. Когда я пытаюсь переназначить это на 'control, чтобы проверить его (но в итоге я хочу, чтобы оно было meta и Alt как Ctrl, как уже упоминалось), windows-e все еще перехватывается Windows (XP) и открывает Проводник, но кажется хорошим местом для начала? Буду признателен за любые предложения.

1 Ответ

6 голосов
/ 14 сентября 2010

Из документации на w32-pass-lwindow-to-system:

Обратите внимание, что некоторые комбинации левой клавиши "Windows" с другими клавишами перехватывает Windows на низком уровне, поэтому связывание их в Emacs не будет эффект. Например, -r всегда выскакивает диалоговое окно Windows Run, - появляется диалоговое окно «Свойства системы» и т. Д. Однако см. строка документа `w32-phantom-key-code '.

Из документации на w32-phantom-key-code:

Код виртуальной клавиши, используемый для генерации «фантомных» нажатий. Значение - это число от 0 до 255. Фантомные нажатия клавиш генерируются, чтобы остановить систему воздействуя на ключевые события Windows, когда `w32-pass-lwindow-to-system 'или `w32-pass-rwindow-to-system 'равно nil.

И, как говорится на сайте Xah:

Этого нельзя избежать, если вы не используете другие инструменты, такие как AutoHotkey. Тем не менее, может быть невозможно отключить Win + l (окно блокировки) и Win + u (простой доступ).

Так что, похоже, что если он не работает с методом, который он описывает (что кажется правильным), вам следует заглянуть в AutoHotKey .

...