在 mac OS X 上关闭 GUI emacsclient 后如何将焦点返回到终端?

Posted

技术标签:

【中文标题】在 mac OS X 上关闭 GUI emacsclient 后如何将焦点返回到终端?【英文标题】:How to return focus to terminal after closing GUI emacsclient on mac OS X? 【发布时间】:2017-11-26 14:01:30 【问题描述】:

我已按照 How to launch GUI Emacs from command line in OSX? 和 Mac osx 的 Emacs how-to page 中提出的建议设置我的 GUI emacs,使其专注于启动。

当我运行 emacs 独立会话时,emacs GUI 正确地获取焦点,并且在终止我的 emacs 框架后焦点返回到我的终端。

但是,使用C-x C-c 杀死我的emacsclient 框架(别名为script)不会将焦点返回到终端。

有什么好办法吗?

更新 M-x kill-emacs 确实将焦点返回到终端。所以问题是专门杀死那个 emacsclient 框架。

【问题讨论】:

你可能需要一个applescript来实现你的目标。 我的特刊也类似。我已将我的 git 配置为使用外部编辑器来提交消息。在我关闭编辑器后,终端 (iTerm) 将重新获得焦点。 【参考方案1】:

我通过运行 Applescript 来解决这个问题:1) 记录当前应用程序,2) 启动 Emacs 并等待,3) 将焦点返回到当前应用程序。它看起来像:

tell application "System Events"
    set frontApp to (path to frontmost application as Unicode text)
end tell

do shell script "/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -c"

activate application frontApp

【讨论】:

在此期间,有人实现了mac-pseudo-daemon,它使用 emacs 钩子调用 Applescript 以在图形框架关闭时隐藏 emacs 窗口。容易多了!

以上是关于在 mac OS X 上关闭 GUI emacsclient 后如何将焦点返回到终端?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 mac os x sierra 上安装 libX11-dev

在 Mac OS X 上检索系统信息 [关闭]

有没有办法将 iOS 应用程序转换为 Mac OS X 应用程序? [关闭]

在 Mac OS X 上使用现代 OpenGL [关闭]

在 Mac OS X 上安装 Shiny [关闭]

如何在 Mac OS X 中打开具有不同 $HOME 路径的 GUI 应用程序