Macos 如何在Emacs中访问OSX服务/键盘快捷键

Macos 如何在Emacs中访问OSX服务/键盘快捷键,macos,emacs,keyboard-shortcuts,Macos,Emacs,Keyboard Shortcuts,Emacs会识别标准的OSX快捷方式,比如Command+Q,但当我尝试使用自定义快捷方式Command+Control+S来执行类似OpenSafari(不要评判我:-p)的操作时,小缓冲区会显示“未定义” 有没有办法将Emacs快捷方式设置为我在OSX中定义的全局服务/快捷方式之一 (OSX 10.9.1,Emacs 24.3)此解决方案不使用系统范围的键盘快捷键,而是使用applescript: (defun safari-activate () (interactive) (let

Emacs会识别标准的OSX快捷方式,比如Command+Q,但当我尝试使用自定义快捷方式Command+Control+S来执行类似OpenSafari(不要评判我:-p)的操作时,小缓冲区会显示“未定义”

有没有办法将Emacs快捷方式设置为我在OSX中定义的全局服务/快捷方式之一


(OSX 10.9.1,Emacs 24.3)

此解决方案不使用系统范围的键盘快捷键,而是使用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"))

在没有自定义的情况下运行emacs时,服务键组合起作用

/Applications/Emacs.app/Contents/MacOS/Emacs.sh --no-init-file
经过多次尝试和错误后,我发现我的问题是由自定义mac选项修改器引起的,如。 如果我切换回或保留默认值,则我可以访问服务,但标准快捷方式不再工作!:-(


此外,我无法通过操作讨论中讨论的菜单来运行服务

答案将根据您是否使用此设置而有所不同:
(setq ns auto hide menu bar t)
您正在使用该设置吗?我不确定它是何时首次引入的,但如果没有一些特殊的措施,执行OSX本机键盘快捷键是不可能的。请确认您使用的是标准系统首选项键盘快捷键,而不是KeyboardMaestro或其他第三方解决方案。如ar正如我所知,我没有使用该设置。我从未将其放入我的init文件,现在它不在那里。此外,我使用自定义键盘快捷键,但它们已通过标准系统首选项选项进行自定义。