如何启动emacs服务器?

Men*_* Lu 43 emacs configuration mutt

我想使用emacsclient编辑Mutt中的电子邮件.

我在.emacs中添加了这个

(server-start)

在.muttrc我补充道

set editor="emacsclient -nw %s"

看来它们有效.当我启动第二个Emacs时,它抱怨已经有一个服务器正在运行,因此它会发出错误.如何确保(server-start)仅在服务器尚未启动时才执行此操作?

谢谢

Phi*_*ipp 58

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

(load "server")
(unless (server-running-p) (server-start))
Run Code Online (Sandbox Code Playgroud)

  • 这是唯一适用于Windows的选项,因为`emacs --daemon`说_这个平台不支持-daemon标志._ (2认同)

Boz*_*sov 48

emacs守护程序可以以非常简单的方式自动启动.只需将其添加到.bashrc/.zshrc /中

export ALTERNATE_EDITOR=""
Run Code Online (Sandbox Code Playgroud)

现在,当您调用emacsclient(使用--tty或者--create-frame)时,如果服务器emacs --daemon尚未运行,则将启动该服务器.

我也发现这个shell别名很方便:

alias e='emacsclient --tty'
Run Code Online (Sandbox Code Playgroud)

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

  • 你能否为"这是在守护进程模式下使用Emacs的首选方式"以及"`(start-server)`现在大部分已被弃用"的说法提供一些参考?我没有看到最新文档中提到的内容,也没有其他任何内容.谢谢. (5认同)

Eld*_*ese 12

有点迟到的答案,但这里的解决方案对我有用.每当我开始emacsclient,我使用emacsclient -a '' -c-a ''通知emacsclient尝试连接到现有的服务器,如果没有服务器,启动一个,然后连接到它.


Dir*_*tel 7

通过完全避免这个问题

emacs --daemon
Run Code Online (Sandbox Code Playgroud)

在任何shell或终端中,以便Emacs在后台运行.这种方式emacsclient总是很开心,因为总有一台Emacs服务器需要连接.

这是Emacs,还有一个只在需要时启动服务器的功能,但我现在还不记得它的名字.我--daemon自己很开心地使用这个选项.