Emacs 23,OS X,multi-tty和emacsclient

Sin*_*ned 5 macos emacs elisp

如何在OS X上以多tty模式使emacs 23正常工作?

我已添加(server-start)到我的.emacs中,并发现运行/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n ~/myfile.txt会在我的emacs.app中打开它,但它不会将emacs带到前面.

那么,当我运行emacsclient时,如何让emacs.app出现在前面呢?(我考虑过编写一个函数,每次打开文件时将当前帧放在前面,或者编写一个Applescript来执行类似的工作,可以在emacsclient的同时调用)

emacs.app中的emacsclient是最好用的吗?我假设如果是这样我会写一个别名,但是使用它而不是/ usr/local/bin中的东西似乎很奇怪

有没有人得到任何其他提示或例子让这个工作?

mrf*_*lip 6

我有一个来自emacs的别名

open -a /Applications/Emacs.app "$@"
Run Code Online (Sandbox Code Playgroud)

如果您为每个文件打开一个新框架(窗口)这一事实感到恼火 - 添加

(setq ns-pop-up-frames nil)
Run Code Online (Sandbox Code Playgroud)

到你的.emacs并修复.


Tre*_*son 5

也许这会起作用,只需在客户端附加时调用raise-frame:

(add-hook 'server-visit-hook 'call-raise-frame)
(defun call-raise-frame ()
  (raise-frame))
Run Code Online (Sandbox Code Playgroud)

(在我的Linux机器上它似乎是多余的.)


小智 2

AppleScript 很简单:

tell app "Emacs" to activate
Run Code Online (Sandbox Code Playgroud)