Mac 下 emacsclient --eval "(magit-status)" 不会激活 Emacs 窗口

  1. M-x magit-emacs-Q-command 得到的命令从 iTerm 启动 GUI Emacs
  2. M-x server-mode 启动 Emacs Server
  3. 切回 iTerm 执行 emacsclient --eval "(magit-status)"

此时最前面的窗口依旧是 iTerm,并不是 Emacs 窗口,更奇怪的是 emacsclient .emacsclient -n . 却没这个问题(会自动切到 Emacs 窗口),不清楚怎么回事。

(我使用的是 Emacs Mac Port。)

这儿有个看似相干问题,但跟我的情况刚好相反:

1 个赞

我这里正常,使用的emacs-plus,vanilla Emacs也正常。

感谢反馈,估计 Emacs Mac Port 或者我的环境特有的问题,不熟悉 Magit 代码,熟悉的话应该不难摸清楚什么情况。

我原来还折腾过这么解决的

emacsclient --eval "(magit-status)" \
            --eval '(select-frame-set-input-focus (selected-frame))'

估计是后来用 Cocoa Emacs 没这个问题就去掉了,换回 Emacs Mac Port 就纳闷什么情况。

emacs-mac的问题