13

我使用 emacs 守护进程来保留我的 emacs 会话,即使我必须重新启动运行 X 服务器的机器,或者如果我想从不同的机器访问相同的会话。这很好用,但是在恢复会话时,我很想只运行“emacsclient --create-frame --no-wait”来连接到守护程序而不打开新文件。如果不指定文件名,它不会让我逃脱。

我试过使用 --eval 来执行一个函数而不是打开一个文件,但是当评估完成时窗口就会消失。

(通过 Debian GNU/Linux 5.0 上的反向移植的 Emacs 23.1。)

4

4 回答 4

19

从 emacsclient 提供的帮助中,您有几个选择。首先,是已经提到的那个是emacsclient -c。这将尝试创建一个与 emacs 守护进程关联的框架。这样做的好处是,如果没有设置 DISPLAY,那么它将在终端中打开 emacs。

这为我们带来了下一个最佳选择(尤其是在您远程登录的情况下):emacsclient -t即使设置了 DISPLAY,它也会强制 emacs 在终端模式下打开。

另请记住,您也可以从命令行设置显示。从 VNC 远程登录时,我经常使用它。完整的命令是emacsclient -d DISPLAY -c

于 2010-07-13T16:19:28.657 回答
7

emacsclient -c为我工作。

于 2010-07-13T14:42:30.113 回答
3

emacsclient -n -e "(make-frame)"

-n标志表示emacsclient不等待,并且 emacs 实例不会破坏帧。

于 2010-07-13T14:03:31.563 回答
3

如果您从命令行使用 emacs,您可能还需要考虑emacsclient -t

于 2010-07-13T18:22:28.187 回答