Emacsclient 文档提到模拟 Gnuclient。有什么关系?

Pet*_*r.O 3 emacs gnuclient

在 GNU Emacs GUI 中打开文件时,我使用gnuserv附加到已经运行的 emacs。我使用 'gnuserv' 只是因为我阅读的关于该主题的第一个文档建议了它。

今天我正在寻找一种在特定行号处打开文件的方法,并找到了使用emacsclient -c +4:3 FILE 的参考......当我运行命令时,它抱怨需要启动服务器.. .
gnuserv正在运行,所以 gnuserv 和 emacsclient 显然不是互补组件..

这两个客户端-服务器系统之间是什么关系?
例如。它们可以共存吗?.. 是否还有一个“最新的”?... 一个仅用于终端吗?.. 它们执行类似的功能吗?..

Gil*_*il' 5

有一段时间,Emacs 有两个主要实现:GNU EmacsXEmacs。XEmacs 通常具有更多功能,GNU Emacs 正在迎头赶上,但提供更精致的产品¹。XEmacs 在最近几年没有任何重大的发展。我认为 GNU Emacs 23 已经赶上了 XEmacs 21(最后一个版本)的所有主要功能。

GNU Emacs 和 XEmacs 的不同之处在于 emacsclient/gnuclient。在 GNU Emacs 22 之前,emacsclient 只能打开现有 Emacs 中的文件,而 gnuclient 可以在远程 Emacs 进程中执行任意代码。从 GNU Emacs 23 开始,emacsclient 和 gnuclient 具有相似的功能。

gnuclient/gnuserv 和 emacsclient/emacsserver 使用的协议不同。所以你需要选择一个并坚持下去。(应该可以在您的 Emacs 实例中同时运行 gnuserv 和 emacsserver;这可能需要一些小的 Lisp 调整以避免名称冲突)。

当 emacsclient 不支持打开文件之外的任何内容时,我曾经在任何可用的地方使用 gnuserv/gnuclient,但是从 Emacs 23 开始,我使用带有 emacsclient 的内置服务器。

¹ 项目之间还有其他政治差异,我不会在这里讨论。