首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >远程emacs客户端连接,但不会在终端中创建新帧

远程emacs客户端连接,但不会在终端中创建新帧
EN

Stack Overflow用户
提问于 2013-09-03 14:00:28
回答 1查看 1.6K关注 0票数 3

我以TCP模式配置并启动了一个emacs服务器:

  1. (setq server-host "10.16.184.33")(setq server-use-tcp t)添加到.emacs
  2. ran emacs --daemon

在同一台主机上,运行emacsclient -t会在当前终端上打开一个emacs框架,运行emacsclient -c会像预期的那样显示一个新的图形客户端框架。

在另一个主机上,运行emacsclient -t -f ~/.emacs.d/server/server似乎成功地连接到远程emacs服务器,但终端中没有创建任何框架:

代码语言:javascript
复制
$ emacsclient -t -f ~/.emacs.d/server/server
emacsclient: connected to remote socket at 10.16.184.33

此时,emacsclient在前台运行,Ctrl用SIGTERM阻止它。

server-client变量的值显示远程emacs客户端连接:

代码语言:javascript
复制
server-clients's value is
(#<process server <10.16.184.33:52710>> #<process server <10.16.177.8:59460>>)

我检查过的东西:

  • Emacs和emacsclient的版本:全部24.3
  • 当交换哪些机器是服务器和远程客户端时,也会发生同样的问题,除了.
  • emacsclient打印额外的错误消息。 emacsclient:连接到远程套接字10.16.177.8 *错误*:无法打开文件:/dev/pt/26

还有什么要检查或配置的想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-03 18:11:22

没有什么可以“检查或配置”。您不能远程使用emacsclient,因为两个进程共享框架,由于明显的原因,框架不能远程工作。

如果客户端连接到Emacs服务器,它实际上不会创建框架本身。相反,它只是告诉服务器要创建什么样的框架,即是GUI框架还是终端框架。然后,服务器根据客户端的请求和参数创建框架。

具体来说,在TTY客户机(即emacsclient -t)的情况下,服务器试图在客户端TTY上创建一个框架。显然,如果服务器运行在不同的系统上,这是行不通的。TTY是本地的,不能远程访问。

FYI,Emacs服务器的“TCP模式”从未用于远程访问。对于不支持本地Unix套接字(即Windows )的系统,它只是一个解决方案。

你甚至不想让它发挥作用,因为它是可怕的不安全。Emacs服务器作为本地协议,既不支持流量加密,也不支持身份验证。通过运行远程访问的Emacs服务器,允许任何其他系统在计算机上执行任意Emacs。

远程使用Emacs的正确方法是SSH。在远程系统上安装SSH服务器,然后通过SSH连接到系统,然后在远程外壳中启动emacsclient -t

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18594287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档