2014-02-20 70 views
2

Emacs將識別Command + Q等標準OSX快捷方式,但是當我嘗試使用我自定義的快捷方式Command +做一些像打開Safari(不要判斷我:-P) Control + S,迷你緩衝區顯示「未定義」。如何訪問Emacs中的OSX服務/鍵盤快捷方式

有沒有辦法讓我將Emacs快捷方式設置爲我在OSX中定義的全局服務/快捷方式之一?

(OSX 10.9.1,Emacs的24.3)

+0

答案將是取決於您是否使用這個設置不同的討論:'(setq NS-AUTO -hide-menu-bar t)'您是否使用了該設置?我不確定它何時首次推出,但由於缺少某些特殊措施,無法執行OSX原生鍵盤快捷鍵,請驗證您是否使用了標準系統偏好鍵盤快捷方式,而不是像KeyboardMaestro或其他第三方解決方案 – lawlist

+0

據我所知,我沒有使用該設置,我從來沒有把它放在我的init文件中,它現在不存在。 ,我正在使用自定義鍵盤快捷鍵,但它們已被自定義通過標準的系統偏好選項。 –

回答

1

此解決方案不使用系統範圍的鍵盤快捷鍵,而是使用一個AppleScript:

(defun safari-activate() 
(interactive) 
    (let ((script (concat 
     "tell application \"Safari\"\n" 
     "activate\n" 
     "end tell"))) 
    (start-process "safari-activate" nil "osascript" "-e" script))) 

這裏是一個稍微不同的方法,但沿着相同的路線:

(defun safari-activate-two() 
(interactive) 
    (do-applescript "tell application \"Safari\" to activate")) 
0

服務按鍵組合工作時沒有定製運行emacs。

/Applications/Emacs.app/Contents/MacOS/Emacs.sh --no-init-file 

多的反覆試驗之後發現我的困境是由MAC-選項修飾符的定製造成的,按照mac-switch-meta。 如果我切換回或保留默認值,那麼我可以訪問服務,但標準快捷方式不再有效! :-(

更重要的是我無法運行通過操縱菜單中的服務作爲討論No Menu Bars