2011-06-14 80 views
17

我正在使用emacsformacosx.com并且想要停止我的Apple键盘上的Meta_R(右元或右键选项)不是Emacs元键。OSX Emacs:取消绑定正确的ALT?

原因是我希望能够继续使用正确的选项键作为字符修饰符,以便在使用emacs编写时可以输入UTF-8字符。例如,我知道我可以做一个C-x 8 RET,并输入em dash,但这比Alt_R -要多得多!

是否有某种方法将密钥传递给global-unset-key?或者我忽略的其他东西?

我应该清楚,我还是希望能够使用Meta_L结合:)

+1

您是否考虑过使用Command作为元?这就是我在Mac上运行Emacs多年的方式 - 是不是默认的? (我不知道应用程序可以区分一方和另一方的方式。) – 2011-06-14 15:00:37

+2

我从下面的答案中用'(setq ns-right-alternate-modifier nil)'进行了实际尝试。我实际上认为将Command键作为Meta对我来说更舒适。我把它加到我的.emacs中:'(setq mac-command-modifier'meta) (setq mac-option-modifier nil)' – markhellewell 2011-06-26 02:34:00

+1

其实,你提到的Cx 8 RET方法帮助我解决了这个问题 - 掌舵它真的很棒!无论如何,我不知道这些UTF8字符快捷键。现在我可以放置☃全部:) – metakermit 2013-09-09 14:24:26

回答

12

Aquamacs有一个名为ns-right-alternate-modifier变量。如果我正确阅读文档,则应该按照您的要求进行操作:

(setq ns-right-alternate-modifier nil) 

我不确定这是否支持库存GNU Emacs。

+0

完美!这正是我想要实现的行为;谢谢! – markhellewell 2011-06-14 23:36:27

+0

那么,使用(setq ns-right-alternate-modifier nil),alt不再适用于SHIFT。所以:ALT + SHIFT +( - > 5而不是 - > [。: - /。任何想法? – PHF 2011-11-20 11:02:34

+0

@PHF它适用于我的Mac与普通的emacs发行版 – 2018-02-03 15:58:41

2

这不正是你想要的,但是这是我做的,并可以帮助别人(比如在MacBook的键盘它只有一个选项键上):你可以结合你想要的键:

(global-set-key "\M-_" (lambda() (interactive) (ucs-insert "2014"))) 

em破折号等只是绑定任何你通常使用。在极少数情况下,你想输入一些你没有绑定的东西,你可以(在Aquamacs中,也应该可以在其他Emacsen中)击中C-;,这将绑定到toggle-mac-option-modifier,这样Option键不再是Meta,type该字符,并再次点击C-;

24

要映射与META的左Alt键和ALT右ALT键,在GNU Emacs的的Mac OS X版本,我用:

(setq mac-option-key-is-meta t) 
(setq mac-right-option-modifier nil) 

它应该做的工作为你期望的行为。

+2

这对我有用 – Zolomon 2013-05-21 09:28:38

+0

这也为我做了诡计。 – 2017-02-11 18:15:38

3

我找到了我的MacBook Pro与法国键盘的解决方案。

考虑到我几乎从来不使用Fn键在这里我做了什么:

; ALT被认为是ALT和不被解释为META
(setq缺省的MAC-选项改性剂无)

; FN被视为META而不是解释为FN
(setq默认MAC功能修饰符的元)

这样我就可以尽可能多的反斜杠鬼混,因为我想在Emacs!

\\ [GREAT !!!] \\

+0

为什么选择FN而不是左对齐META? – 2015-12-18 22:55:06

+0

您是不是将CMD映射到控件? – 2015-12-18 23:04:13