无法让 emacs 服务器以 X11 启动

问题描述 投票:0回答:1

我很困惑 emacs 服务器应该如何工作。我本以为,如果设置了 DISPLAY 环境变量,emacs 服务器在有要编辑的文件时会启动 X 框架,但事实并非如此。

因此,如果我运行

emacs --daemon
,然后运行
emacsclient foo.x
,它将启动一个终端 emacs 会话。但是,如果我杀死该守护进程并运行
emacs &
(打开 X11 框架),然后运行
M-x server-start
emacsclient foo.x
,那么它将在 X11 会话中打开 foo.x。

如何从命令行运行服务器守护程序以使其基于 X11?

emacs
1个回答
0
投票

从用户角度来看,我发现 Emacs 客户端界面有点复杂。但经过一番努力,我学会了如何使用它。

emacsclient <file>
在最后创建的框架中打开文件,该框架可能是终端框架的 X 框架。如果没有可见框架,它将创建一个终端框架。 (至少在 Linux 上是这样。在 Windows 上有点不同,这里不再赘述)。

您可以使用

emacsclient -c <file>
创建一个新的 X 框架并在新创建的框架中打开文件。注意这个命令要等你编辑完文件才返回。如果您希望命令立即返回,请使用
emacsclient -c -n <file>

我主要使用以下命令来使用 Emacs 客户端打开文件(事实上,我创建了一个包装脚本,只是为了能够轻松地从命令行使用 Emacs 打开文件):

emacsclient -a "" -nw [files...]
:终端中的新 Emacs 客户端框架,可以选择打开一些文件。如果服务器尚未运行,则此处
-a ""
启动服务器。

emacsclient -a "" -c -n [files...]
:X 中的新 Emacs 客户端框架,可以选择打开一些文件。立即返回。

emacsclient -a "" -n files...
:打开最后创建的框架中的文件。立即返回。

© www.soinside.com 2019 - 2024. All rights reserved.