Emacs:使用功能键(F19)作为元

时间:2014-03-30 14:33:03

标签: emacs elisp key-bindings

我在Mac上,并希望使用功能键 F19 作为元。

(有一个很好的理由,虽然它有点像黑客:我的内置(Yamamoto Mitsuharu的优秀端口)不支持只使用左 alt 键为meta,同时保留右 alt 键的本机行为(插入特殊字符)。所以我将左 alt 键重新映射到未使用的键 - F19 - 在PCKeyboardHack的系统级别上(xmodmap非常错过),并希望告诉Emacs将其用作元数据。)

那么,我该如何:在Emacs中使用功能键(在我的情况下为 F19 )作为元键?

(我对Emacs很新,经过一些谷歌搜索,试过像

这样的东西
(define-key global-map [f19] \M)

但是,当然,这并不能解决问题(Symbol’s value as variable is void: M

1 个答案:

答案 0 :(得分:5)

好吧,

(setq x-alt-keysym symbol)

你可以告诉emacs什么键被理解为meta,但afaik它只接受'meta,'alt,'super和'hyper作为符号。也许可以用f19来试试。

一个可行但可能需要适应新工作方式的替代选项是使用F19作为前缀键(就像使用C-h或F1来调用帮助命令一样):

(define-prefix-command 'f19-map)
(global-set-key (kbd "<f19>") 'f19-map)
(global-set-key (kbd "<f19> x") 'execute-extended-command)
(global-set-key (kbd "<f19> u") 'upcase-word)
...

编写配置应该不会太难。只需按C-h b即可获取所有现有的键绑定并编辑帮助缓冲区。去除所有不以M-开头的行,然后使用矩形替换所有出现的^ M- by(global-set-key(kbd“,等等)。

另一种选择是将密钥绑定到Esc而不是F19,只要系统支持,并使用esc前缀而不是f19前缀。这样您根本不必更改emacs配置。