如何在守护程序模式下运行Mac OSX图形Emacs?


24

简短格式:我想将http://emacsformacosx.com/上的Mac OSX版本的Emacs 作为守护程序运行,并根据需要连接图形和文本客户端。

详细来说,这是我想要的工作流程:

  1. 登录时,运行/Applications/Emacs.app/Contents/MacOS/Emacs --daemon以将emacs作为守护程序启动。 我已经知道该怎么做

  2. 从本地终端运行emacs时,我需要以下任一项:

    1. 如果我emacs从本地命令提示符运行,请使用所选文件打开一个新框架。
    2. 如果不可能使用#1,至少从命令行运行时emacsclient,请使用所选文件打开一个新框架。
  3. 从远程终端运行emacs时,我想启动一个文本模式的emacs,并连接到守护进程。

  4. 如果我运行,请Emacs.app重新使用在后台运行的emacs守护进程,而不是启动新实例并在其上打开一个新窗口。

到目前为止,我只能完成上面的#1和#2.2,但这只是简单的部分。#3和#4是完成这项工作最需要的东西。有谁知道如何完成这些事情?


1
对于其他发现此问题的人:您也可以usr M-x server-start来启动emacs,而无需 --daemon进入服务器模式。好的,顺便说一句。
dmckee,2009年

1
...或放入(server-start)您的.emacs,以使其在启动emacsa时启动
Doug Harris 2009年

有人可以解释如何做#1吗?您可以将其设为登录项吗?
查理·弗劳斯

Answers:


15
  1. 你已经处理好了
  2. 是的,您将要使用emacsclient。要获得新框架,请添加-c选项。我有一个别名可以使其更快,并告诉emacsclient不要等待emacs服务器返回:

    alias em='emacsclient -n'
    
  3. emacsclient -nw
  4. 我对此不确定。我启动Emacs一次,并始终在emacs中或使用我的em别名加载新文件。

更新:

请查看此技巧该技巧记录了如何使用Platypus围绕emacsclient创建应用程序包装。然后,您可以使用“打开方式...”使用新的应用程序包装程序启动。


是的,这是真正的把戏,不是吗?因为我想要的是所有OS公开调用都使用运行中的emacs,所以无论我是在终端还是在GUI上下文中进行操作。我会继续寻找。
克里斯R

找到了对鸭嘴兽的推荐,并更新了我的答案。
道格·哈里斯

6
解决了吗 您如何获得Emacs.app连接到守护程序的?
milkypostman 2011年

我也想知道问题4的答案:)
jkp 2011年

2

是的,这里有一个关于如何做到这一点的非常全面的解释。我尝试了几种方法使其正常运行,但没有比这里描述的更好。

https://gist.github.com/304964

干杯!


1
这个链接是死的
Nisba

1

对于4.将其放入您的.emacs中:

(setq ns-pop-up-frames nil)

创建Mac .app(使用Platypus)的解决方案不起作用,因为Mac不会两次打开相同的应用程序。


1
如果使用“ open -n”,则可以打开应用程序的新实例,即使该应用程序已经在运行。开放-n -a Emacs.app somefile.txt:在终端试试这个
约尔根伦德伯格

是的,但是它打开了一个我不想要的新窗口
juanmirocks 2013年

也许我误会了您想要的内容,但是如果您不希望它创建一个新窗口,而是使用现有的窗口,请跳过“ -n”。
约尔根·伦德伯格

是的,我不想创建一个新窗口。open -a Emacs.app肯定是我做什么,但在现有的emacs的同一个实例/守护后台打开我需要写(setq ns-pop-up-frames nil)我的.emacs,因为我在我的回答中写道。否则,无论是否创建,它都会创建一个新窗口-n
juanmirocks
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.