代码之家  ›  专栏  ›  技术社区  ›  hatmatrix

在Windows上重新定义Emacs中的键

  •  5
  • hatmatrix  · 技术社区  · 15 年前

    我在macosx上使用命令键作为额外的控制键(我相信spacecadet键盘有这种配置)。我想在我的Windows机器上通过切换 Alt Ctrl Windows 中高音 在Emacs内。这可能吗?我发现 this post 这意味着

    (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 中高音 ,如前所述), windows-e 仍然会被Windows(XP)截获并打开资源管理器,但似乎是一个好的开始?如有任何建议,我将不胜感激。

    1 回复  |  直到 15 年前
        1
  •  6
  •   Deniz Dogan    15 年前

    从文档中 w32-pass-lwindow-to-system :

    在较低级别被Windows捕获,因此在Emacs中绑定它们将没有任何意义 效果。例如,<lwindow>-r总是弹出Windows运行对话框, <lwindow>-<Pause>弹出“系统属性”对话框等。但是,请参阅 “w32 phantom key code”的文档字符串。

    从文档中 w32-phantom-key-code :

    用于生成“虚拟”按键的虚拟键代码。 值是介于0和255之间的数字。 在“w32将lwindow传递给系统”时对“Windows”键事件执行操作;或 `w32将rwindow传递到系统'为零。

    除非您使用其他工具(如自动热键),否则无法解决此问题。即便如此,也可能无法禁用Win+l(锁定窗口)和Win+u(轻松访问)。

    因此,如果它与他描述的方法(这似乎是正确的)不起作用, 你应该看看自动热键 .