如何仅在未启动的情况下启动emacs服务器?
我想使用emacsclient编辑Mutt中的电子邮件。如何仅在未启动的情况下启动emacs服务器?
我说这的.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)
。
经由
emacs --daemon
在任何壳或终端产品总数避免此问题,以便Emacs的在后台运行。这样emacsclient
总是很开心,因为总是有一个Emacs服务器连接到。
这是Emacs,还有一个功能,只在需要时启动服务器,但我现在还不能完全记得它的名字。我自己很高兴地愉快地使用选项。
有点迟到的答案,但这里是适合我的解决方案。每当我启动emacsclient时,我都会使用emacsclient -a '' -c
-a ''
告诉emacsclient尝试连接到现有服务器,如果没有服务器存在,请启动它并连接到它。
'-a'''选项很棒。请注意'-c'总是创建一个新的框架。如果通常要在现有的emacs框架中编辑文件,那么我省略此选项 – 2017-10-22 21:52:18
这是一个不错的解决方案。 'emacsclient -c'也可以工作,并支持图形客户端。但是,如何在现有的emacs框架中打开文件(例如,在另一个终端中)。目前,我有一个名为'e'的bash脚本,用于检查第一个参数是否为'-o'(对于其他参数),如果存在,则运行'emacsclient'而不带'-c'。有没有更好的方法,使用别名,你可以覆盖'-t'并导致现有的框架打开文件? – edam 2012-10-23 14:18:05
感谢您的好回答:) – nXqd 2014-10-28 18:09:35
@edam不确定您是否找到了答案,但听起来好像您希望-t切换到emacsclient。这有点难以分辨,因为您的评论似乎模糊了终端中的非图形化emacs实例与窗口化图形实例之间的区别。 -t代表前者,-c代表后者。 – Daniel 2015-03-09 17:02:59