2011-06-14 78 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