无法使用 X11 启动 emacs 服务器

xpu*_*mos 1 emacs

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

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

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

小智 5

从用户的角度来看,我发现 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...:打开最后创建的框架中的文件。立即返回。