2013-02-15 23 views
12

我在Mac OS X終端中使用Emacs,並安裝了自制軟件。如何在Emacs中設置CMD鍵綁定?

我的CTRL鍵是我的C鍵,ALT鍵是Meta。

我將如何爲CMD組合鍵定義鍵綁定?

例如,我想將CMD-(右箭頭)設置到該行的末尾。


編輯

我已經試過@下面

(setq mac-command-modifier 'super) 
(global-set-key (kbd "s-<right>") 'move-end-of-line) 

nickcarlo的建議,我不認爲CMD鍵被設置爲超級正確的,因爲我沒有看到在s-foo迷你緩衝區,就像我輸入C-xM-x或任何東西一樣。我注意到,當我打開兩個終端窗口時,CMD正確,在兩個終端窗口之間切換,所以我認爲這可能會阻止任何自定義設置。不過,我想:

(global-set-key (kbd "s-9") 'move-end-of-line) 

..和CMD-9仍然什麼都不做,除了發出蜂鳴聲告訴我,我已經按了什麼。

設置非CMD鍵連擊,似乎很好地工作,如:

(global-set-key (kbd "C-w") 'move-end-of-line) 
+4

AFAIK,你不能只要你運行一個終端在Emacs做到這一點。 Mac cmd修飾符沒有通過(甚至可能不能在標準終端協議/字符集中編碼)。如果你想要這個工作,你應該考慮將Emacs.app作爲應用程序來運行。 – 2013-02-17 16:04:56

回答

11

你可以像設置:

(global-set-key (kbd "s-<right>") 'move-end-of-line) 

「S」是參考你的命令鍵。

PS:我現在不在我的Mac上,所以我不確定你需要寫什麼來將它設置爲你提到的特定鍵,以將它移動到行尾,但命令由s在emacs中。

編輯 剛剛在我的Mac上測試了這一點。這是你寫的確切代碼(如果你想全局設置它)綁定你的命令鍵+右箭頭鍵將光標移動到行尾。

如果以上不工作,你也可以嘗試

(global-set-key (kbd "\s <right>") 'move-end-of-line) 

上面之間的差異而這一次,上述相當於CMD +右而這一次相當於CMD,然後釋放CMD並按右鍵。在我的系統上都可以在OS X上運行。

還檢查了以下崗位設置您的CMD爲以防超級鍵您的Emacs已經不把它註冊爲這樣:

http://ergoemacs.org/emacs/emacs_hyper_super_keys.html

具體地說,可以使用下面的代碼來設置將您的CMD密鑰設置爲Super:

(setq mac-command-modifier 'super) 
+0

無法讓它工作。我應該說,我使用Emacs Live - https://github.com/overtone/emacs-live ..但是,我嘗試了一個普通的香草emacs,但仍然沒有結果。這段代碼 - https://github.com/store/emacs-config/blob/master/rc-hotkeys.el - 似乎暗示格式應該是,但這仍然不起作用。就好像綁定只是不註冊。 – cannyboy 2013-02-16 00:36:33

+0

@cannyboy我從macports得到了我的Emacs副本(端口安裝emacs-app)也許這就是爲什麼我可以讓它與上面的代碼一起工作。我從來沒有使用過Emacs Live,因此我不確定它與我所擁有的不同。 – 2013-02-16 00:50:51

+0

@cannyboy一旦你寫這行或者像這樣的任何其他行,移動到行尾並執行C-x C-e並查看它是否在下面的小緩衝區中顯示功能的名稱。您也可以通過執行C-h b來檢查您的密鑰綁定,並查看它是否在那裏列出。 – 2013-02-16 00:59:46

1

第1步:cx cf .emacs //打開。emacs的文件

步驟2:添加下列行於.emacs文件

;; changing the command to control 
    (setq mac-command-modifier 'control) 

步驟3的端部:保存.emacs文件

步驟4:的Mx EVAL-緩衝器//的Mx = Alt鍵-x //這會評估.emacs緩衝區並重新加載Emacs

第5步:嘗試CMD-e以結束行。 //現在CMD的行爲就像控制

第6步:仍然CMD-E不能重新啓動Emacs。

享受使用Emacs!

+0

難道這不會將他的命令鍵設置爲他的控制鍵嗎?我不認爲他打算這麼做。 – 2013-02-16 14:23:46

+1

我覺得使用cmd作爲cnt更爲舒適,它可以節省大量時間並減少小手指疼痛。 – USK 2013-02-16 17:25:32

+1

我明白這一點,它似乎是OS X Emacs社區的一般做法(儘管我已將CMD鍵綁定到其他操作,但我並未遵循這一慣例)。我只是說我不認爲這張貼意圖將他的Meta操作改爲他的CMD密鑰。 – 2013-02-16 17:27:11

6

在Aquamacs,什麼工作對我來說是以下

(global-set-key (kbd "A-r") 'my-command) 
+2

非常感謝。這就是我正在尋找我的Aquamacs :) – shivams 2016-10-01 21:23:20