如何启动emacs服务器,如果它没有启动?

我想用emacsclient编辑Mutt中的邮件。

我在.emacs中添加了这个

(server-start)

并在.muttrc我补充说

set editor="emacsclient -nw %s"

看来他们工作。 当我开始第二个Emacs,它抱怨已经有一个服务器运行,所以它发出错误。 只有当服务器尚未启动时,如何确保(server-start)

谢谢

emacs守护进程可以以非常简单的方式自动启动。 只要添加到您的.bashrc / .zshrc /无论

 export ALTERNATE_EDITOR="" 

现在,当你调用emacsclient -t/-c ,如果服务器尚未运行,服务器将会启动(使用emacs --daemon )。

我也发现这个shell别名方便

 alias e='emacsclient -t' 

请注意,由于Emacs 23是在守护进程模式下使用Emacs的首选方式。 (start-server)现在大多已被弃用。

此代码仅在未运行时启动服务器:

 (load "server") (unless (server-running-p) (server-start)) 

有点迟到的答案,但这里是适合我的解决scheme。 每当我启动emacsclient,我使用emacsclient -a '' -c-a ''告诉emacsclient尝试连接到一个现有的服务器,如果没有服务器存在,启动一个然后连接到它。

通过一起避免这个问题

 emacs --daemon 

在任何shell或terminal,以便Emacs在后台运行。 这样emacsclient总是很开心,因为总是有一个Emacs服务器连接到。

这是Emacs,还有一个function是只在需要的时候启动服务器,但现在我不能完全记得它的名字。 我非常高兴地使用--daemon选项。