emacs 创建键修饰符

2024-02-18

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

有人有线索吗?


这种方法不会创建修饰键,因为您在按住修饰符的情况下按下另一个键,但它仍然允许您使用超级绑定。

By default you can utilise the additional modifier keys via the C-x@ prefix. See C-x@C-h for the full list.

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

(define-key function-key-map (kbd "C-c H") 'event-apply-hyper-modifier)

function-key-map是所有人的父母local-function-key-map实例。仔细注意:

如果“local-function-key-map”中的条目与在次要模式、本地或全局键盘映射中进行的绑定冲突,则它们将被忽略。 IE。仅当原始按键序列不具有任何绑定时才适用重新映射。

C-hig (elisp) Translation Keymaps RET

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

Edit:澄清一下,当您使用没有超级修饰键的计算机时,这为您提供了一种访问任何现有“超级”绑定的方法,但实际上并不创建新的修饰键。如果您没有可供访问的现有绑定,则此技术与常规前缀绑定相比没有任何优势。

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

IIRC, xmodmap这将是 Unix 系统中实现此目的的典型机制,因此 OSX 很可能就是这种情况。以下链接可能有帮助:

  • http://computing.fnal.gov/docs/products/xemacs/v21_1/xemacs.info,.SuperandHyperKeys.html http://computing.fnal.gov/docs/products/xemacs/v21_1/xemacs.info,.SuperandHyperKeys.html
  • http://www.emacswiki.org/emacs/XModMap http://www.emacswiki.org/emacs/XModMap
  • http://www.emacswiki.org/emacs/MetaKeyProblems http://www.emacswiki.org/emacs/MetaKeyProblems
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

emacs 创建键修饰符 的相关文章

  • 在 Emacs 中,如何在迷你缓冲区中显示带有字体属性的消息?

    我想在迷你缓冲区中显示彩色文本字符串 但是当我使用 消息 函数时 文本属性被删除 对我有用 message s propertize foo face foreground red 你可能有 message propertize 它将属性化
  • 如何在 emacs 中自动回答是或否

    I binded function semantic symref to key C c C r like this global set key kbd C c C r semantic symref everytime I presse
  • Emacs 正则表达式:什么 \< 和 \> 可以做 \b 不能做的事情?

    正则表达式反斜杠 GNU Emacs 手册 http www gnu org software emacs manual html node emacs Regexp Backslash html说 lt 匹配单词的开头 gt 匹配单词末尾
  • Emacs 24.x 上的 IPython 支持

    我对 IPython 与 Emacs 的集成感到困惑 从 Emacs 24 开始 Emacs 附带了自己的python el 该文件是否支持 IPython 还是仅支持 Python 另外 维基百科 http emacswiki org e
  • 防止 paredit 在插入括号时插入空格 - 以及其他问题

    我爱帕雷迪 但有一些事情我讨厌 而且还没有解决 打开括号会插入一个空格before括号 我知道这可能是整个互联网的首选风格 但它不是我的 如何避免这种情况呢 当位于引用区域内时 我无法回删除 另外 输入双引号 将插入一个反斜杠 显然是为了转
  • 永久启用所有禁用的命令

    我想启用 Emacs 中所有禁用的命令 例如downcase region 也就是说 当调用时 它们不会要求用户确认 不幸的是 Emacs 手册的 48 3 11 禁用命令 部分没有提及启用all禁用命令永久 Emacs版本 24 0 95
  • 在 emacs org-mode 中仅延迟加载前 N 行

    有没有办法告诉 org mode 仅加载长文本文件的前 N 行 我想保持整个文件打开以便能够搜索它 但在文件的前 N 行上显示组织模式 这是我编辑新内容的地方 如果您在组织模式下有结构化大纲 则可以使用以下命令设置全局文件可见性 START
  • 如何使用 Emacs Lisp 检查文件是否存在?

    我希望 emacs 将打开时生成的文件标记为只读 我所缺少的难题部分是如何检查文件是否 存在 我目前有以下内容 get file extension defun get ext file name car cdr split string
  • 如何在 (emacs) shell 命令的输出中添加颜色?

    执行命令时shell命令 关联缓冲区中显示的输出未着色 当从 emacs 中调用测试框架 输出黄色 绿色 红色 时 这尤其令人烦恼 我如何配置或扩展 emacs 以便shell命令允许在 shell 中进行彩色输出并在表示该输出时保留颜色
  • Emacs Lisp 中函数名称中的“internal”是什么意思?

    有些人使用双破折号来表示该功能可能会发生变化 函数名称中的双减号 约定在 Emacs Lisp 中意味着什么 https stackoverflow com questions 3180390 what does the double mi
  • 如何在组织模式下关闭公司模式?

    我正在使用 spacemacs 并尝试在组织模式下关闭公司模式 同时将其保留在其他主要模式中 我尝试过以下方法 global company mode not org mode 但它不起作用 禁用自org mode hook 此方法几乎适用
  • 我应该学习使用 Emacs 吗? [复制]

    这个问题在这里已经有答案了 我使用 IntelliJ IDEA 作为代码编辑器 所以这并不是要取代它 我用vi or vim用于在我们的服务器和标准上进行简单的文本编辑unix用于查找文件 获取目录列表等的命令 同事们对 emacs 赞不绝
  • 如何在 Emacs à la Vim 中设置标记?

    I d like to be able to set multiple marks in Emacs like Vim does In Vim you might press m b and that would set a mark at
  • 如何从 Emacs 中检出 Perforce 下的文件?

    我在工作中使用 Perforce 进行源代码控制 并且希望从 Emacs 中 打开以进行编辑 源代码控制下的文件 那怎么办呢 我需要在 Emacs 中设置什么 有插件吗 我还想执行其他 p4 操作 例如提交我的更改等 Perforce Em
  • 让 Emacs 尊重我的默认 shell + 选项

    我正在尝试让我的 Emacs shell 模仿我的标准终端会话 基本上我希望它尊重相同的路径以及命令提示符 到目前为止我有几个问题 找不到 PATH 下面是我正在使用的修复程序 我尝试过另一个修复 到处都是 ascii 颜色代码 我的 mw
  • 修改verilog模式缩进

    我试图让 verilog 模式使用 2 个空格缩进除 decls 和always 之外的所有内容 这是我添加到 emacs 中的内容 define are not indented setq veril
  • 通过链接进入 git-repo,无需冗长的对话框

    In a directory I have symbolic links into a git administered directory all under Linux Every time I want to e dit such a
  • 向上移动箭头不突出显示文本 emacs iterm2

    我最近有人帮忙修复M left等等 终端元箭头键绑定中的 emacs https stackoverflow com questions 10867199 emacs in terminal meta arrow keybindings 但
  • Emacs中跳转到声明的快捷键是什么?

    在 Visual Studio 中 编辑 C C 代码时 按 F12 按钮可以更轻松地跳转到函数或变量的声明 emacs 有快捷键可以做到这一点吗 嗯 事情比这更复杂一些 默认情况下 Emacs 不 了解 C 或 C 代码的函数声明 首先
  • Shift 键在我的 emacs 中不起作用

    I run emacs in gnome terminal with nw option it works well except for some key shortcuts that include the shift key For

随机推荐