Emacs客户端-最小安装是什么?

Emacs客户端-最小安装是什么?,emacs,installation,client,updates,Emacs,Installation,Client,Updates,假设我在某个远程服务器上运行一个Emacs服务器,其中包含运行我的应用程序所需的所有库和软件 然后我想要几个客户端使用Emacs客户端连接到远程机器。是否每个客户机都需要一个完整的Emacs安装,或者是否有一个只足以与远程服务器通信的最小安装(所有操作都在远程服务器上) 这种(Emacs-)客户端安装是否会如此之少,以至于几乎所有的软件更新都可以在服务器上完成,而不会影响Emacs客户端?我不确定这是否可能。EmacClient使用tramp连接到远程服务器,只需查看tramp elisp文件(

假设我在某个远程服务器上运行一个Emacs服务器,其中包含运行我的应用程序所需的所有库和软件

然后我想要几个客户端使用Emacs客户端连接到远程机器。是否每个客户机都需要一个完整的Emacs安装,或者是否有一个只足以与远程服务器通信的最小安装(所有操作都在远程服务器上)


这种(Emacs-)客户端安装是否会如此之少,以至于几乎所有的软件更新都可以在服务器上完成,而不会影响Emacs客户端?

我不确定这是否可能。EmacClient使用tramp连接到远程服务器,只需查看tramp elisp文件(41)中的
require
s的数量,就不太可能了。您可以自己尝试以下方法:


zgrep-oE“\(要求“[a-z-]+\”*el.gz | sed-e的%[a-z0-9-]\+\.el\.gz:%%g'| sort | uniq-cu | wc-l

根据您试图实现的目标,您可能能够使用emac和Screen的组合。通过从远程机器上的屏幕启动Emacs并从中分离,您可以随后从没有Emacs的其他机器重新连接。再说一次,这是否对你有效取决于你正在努力做什么;然而,对于许多Emacs用例,这可能非常有效。如果您不熟悉以这种方式使用屏幕,以下是一些阅读材料:


我不是EmacClient方面的专家,但我认为它不是为满足您的需求而设计的。我认为一般的使用案例是EmacClient允许您将使用emacs打开文件的新请求重定向到持久的emacs进程,以避免启动时的开销。您似乎在寻找更真实的客户机/服务器关系

我认为,为了实现您的目标,您可能需要将目光投向emacs之外,可能是一个项目本身——“emacsRemoteClient”。它可以归结为一个或两个模型;要编辑的文件需要将其路径发送到服务器机器,以便emacs可以进行某种远程tramp访问&然后在本地生成xwindow(使用本地X环境或需要windows上的X服务器)。。。或者,将文件传输到服务器盒上的某个临时位置,然后再次在本地生成远程x窗口(然后在tmp和本地文件之间同步更改)

有这样的东西会很酷。。。但是怀疑这会涉及到一些工作。也许我们只需要一个用javascript编写的emacs版本,它就可以在云端或浏览器上运行。。。哦,在浏览器中使用emacs键绑定;-)


-Steve是否有理由不远程运行客户端,而只是使用本地显示器?这样,本地机器上几乎只需要ssh客户端和X窗口服务器

ssh-X(用户)@(服务器)“emacsclient-c”


对评论的编辑:

此命令启动一个新的客户端,以连接到现有的Emacs服务器(假定该服务器已在运行)。如果没有现有服务器,您可以使用
“emacsclient-a'-c”
自动启动
emacs--daemon
,但我不知道您是否希望连接用户启动服务器

事实上,老实说,我对整个多用户方面都很不确定,因为我以前从未这样做过。上面的身份验证由ssh处理,但是当服务器和客户端由不同的用户启动时,可能会有后续的权限问题需要处理,或者类似的问题

这种方法应该可以将Windows/Cygwin作为客户端和/或服务器,因为Cygwin提供了Emacs、OpenSSH和X.org包。(我经常使用Windows/Cygwin作为运行在Linux上的Emacs的本地显示器。)不过,设置起来可能会比较困难,使用Cygwin时,任何权限问题都可能不同

如果没有Cygwin,我不太确定这将如何运作。NTEmacs当然不会与X.org对话,所以我想在这种情况下,您应该是基于终端的。(可能还有其他选择,但Cygwin在我看来是在Windows上使用所有Emacs、SSH和X的最佳集成方法)


最后,我想您可能会收到“连接被拒绝”错误,因为localhost没有运行sshd守护进程?我想说,ssh的配置超出了这个问题的范围,但是在线上有很多相关资源。

谢谢,这不是我所希望的。也许,有了Emacs 24,只需在本地安装Emacs(客户端)的最低核心版本,并将所有库都放在远程服务器上,所有客户端都可以访问,就更容易了。顺便说一句,令人惊叹的Linux命令行向导。这对我来说是一个全新的概念,但非常有趣。我想使用一个非常受限制的Emacs客户端版本,就像在典型的客户机-服务器应用程序中替换web浏览器一样,适用于没有复杂安装例程的非专家。我将不得不看看屏幕是否足够容易使用,但它听起来很有希望。谢谢。如果(在进一步研究之后)您决定Emacs和Screen的组合可能满足您的需要,您可能会想问一个新问题,具体说明您希望使用Emacs和Screen实现什么。这样,你就更有可能得到好的回答。嗨,史蒂夫,听起来很有趣,我想zev和phils在他们的回答中表明,在Emacs之外,这可能不会起什么作用。顺便问一下,你认识康克勒吗?这是一个用javascript编写的web浏览器,模仿Emacs,带有缓冲区和Emacs键绑定。太好了,谢谢。像这样简单的事情,所有的更新和维护都在服务器上进行,不需要安装,这正是我想要的。我现在没有远程服务器来尝试,这在本地主机上也可以吗