gpt4 book ai didi

emacs 创建键修饰符

转载 作者:行者123 更新时间:2023-12-05 00:00:05 25 4
gpt4 key购买 nike

我在 mac os 上使用 emacs。
我想将修饰符(Meta,Control,...)映射到一个简单的键。
基本上这就是我需要的:(global-set-key (kbd "a") 'hyper)这里 a 只是 a 键,没有 Control-a 或其他任何东西,只有“a”,没有修饰符。
例如,我希望“a”变得 super ,但我找不到解决方案。

有人有线索吗?

最佳答案

这种方法不会在按下修饰键的同时按下另一个键的意义上生成修饰键,但它仍然允许您使用 super 绑定(bind)。

默认情况下,您可以通过 C-x@ 前缀使用其他修饰键。完整列表见 C-x@C-h。

这些绑定(bind)位于 function-key-map ,并且您可以使用相同的方法来获取您自己的独立于操作系统的绑定(bind)。例如。:

(define-key function-key-map (kbd "C-c H") 'event-apply-hyper-modifier)
function-key-map是所有 local-function-key-map 的父级实例。仔细注意:

Entries in `local-function-key-map' are ignored if they conflict with bindings made in the minor mode, local, or global keymaps. I.e. the remapping only applies if the original key sequence would otherwise not have any binding.



C-HIG (elisp) Translation Keymaps RET

因此,请确保您使用没有现有绑定(bind)的键序列。 (理论上这是相当有限的,但 YMMV。)

编辑:澄清一下,当您使用没有 super 修饰键的机器时,这为您提供了一种访问任何现有“ super ”绑定(bind)的方法,但实际上并没有创建新的修饰键。如果您没有要访问的现有绑定(bind),则此技术与常规前缀绑定(bind)相比没有任何优势。

我相信,正如 Peter 评论的那样,创建一个真正的修饰键是一项操作系统级别的任务。 AFAIK 当您单独按下修饰键时,Emacs 不会接收任何输入,而当您按下带有修饰符的非修饰键时,Emacs 会接收(修改后的)输入。相反,当您按下/按住非修改键时,Emacs 会立即接收输入,并且无法将该输入与其他输入组合并将其全部视为单个(已修改)事件。

IIRC, xmodmap将是在 Unix 系统中实现这一点的典型机制,因此 OSX 可能就是这种情况。以下链接可能会有所帮助:
  • http://computing.fnal.gov/docs/products/xemacs/v21_1/xemacs.info,.SuperandHyperKeys.html
  • http://www.emacswiki.org/emacs/XModMap
  • http://www.emacswiki.org/emacs/MetaKeyProblems
  • 关于emacs 创建键修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10730775/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com