Tag: emacsclient

作为其他用户在其他机器上使用Emacs服务器和emacsclient

我知道,在我现有的Emacs会话中调用(start-server)之后,我可以使用emacsclient -c (在同一台计算机上)创build连接到该服务器的新帧,以便每个由emacsclient创build的新帧都可以访问同一组共享状态(如缓冲区)。 我发现的大多数文档都关注“让我快速访问我的本地Emacs”用例,所以有两件事情我还没有看到任何细节: emacsclient -c可以访问由其他用户启动的Emacs服务器,还是硬连接来检测仅由我自己的用户启动的会话? Emacs服务器(直接或间接)是否支持远程连接? 也就是说,是否有一些方法来设置Emacs(可能涉及到SSH),允许在远程机器上调用emacsclient -c访问Emacs服务器的本地状态? (如果您还没有猜到,我最终想要做的就是将上述两种技术结合起来,以提供基本的协作编辑支持。) 这是一个现实世界的问题,所以这就是我正在处理的事情: Emacs已经有了必要的function(23.3.1,64位)。 我可以从标准Ubuntu版本库扩展到Emacs扩展,但我不想。 (我相信,我不相信Rudel ,)。 没有新用户或用户欺骗。 解决scheme应该与现有的一组用户帐户一起工作,并且用户不能假装是其他用户(例如通过su或ssh )。 如果它有什么区别,机器是在一个专用的局域网上,有OpenSSH客户端和服务器安装(和运行),所有用户可以连接到(他们自己的帐户)所有机器,但他们没有共享文件系统。 那么,有人知道Emacs服务器是否可以 向其他用户授予访问权限,或者 提供远程访问? 编辑 正如在rwb的回答中所评论的那样,很显然,通过运行emacsclient -c在本地打开的新窗口实际上是由远程 Emacs服务器进程创build的。 也就是说, emacsclient只是触发服务器中的相关行为。 这会导致一些显示设置不正确的问题,因为服务器通常不能访问本地桌面(见下文)。 但是,如果使用以下命令序列,则现在可以连接到远程Emacs会话: 在一个terminal中, 1.22.333.44是1.22.333.44的IP地址: ssh -t -X remotehost \ "emacs -nw –eval '(progn (setq server-host \"1.22.333.44\" server-use-tcp t) (server-start))'" 然后在另一个(在同一台机器上): scp remotehost:.emacs.d/server/server /tmp/server-file DISPLAY=localhost:10 emacsclient -c -f […]