在 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