远程emacs客户端连接,但不';t在终端中创建新帧

远程emacs客户端连接,但不';t在终端中创建新帧,emacs,emacsclient,Emacs,Emacsclient,我在TCP模式下配置并启动了emacs服务器: 将(setq服务器主机“10.16.184.33”)和(setq服务器使用tcp t)添加到.emacs 运行emacs——守护进程 在同一台主机上,运行emacsclient-t将在当前终端中显示一个emacs框架,运行emacsclient-c将显示一个新的图形客户端框架,如预期的那样 在另一台主机上,运行emacsclient-t-f~/.emacs.d/server/server似乎成功连接到远程emacs服务器,但在终端中未创建帧: $

我在TCP模式下配置并启动了emacs服务器:

  • (setq服务器主机“10.16.184.33”)
    (setq服务器使用tcp t)
    添加到.emacs
  • 运行emacs——守护进程
  • 在同一台主机上,运行
    emacsclient-t
    将在当前终端中显示一个emacs框架,运行
    emacsclient-c
    将显示一个新的图形客户端框架,如预期的那样

    在另一台主机上,运行
    emacsclient-t-f~/.emacs.d/server/server
    似乎成功连接到远程emacs服务器,但在终端中未创建帧:

    $ emacsclient -t -f ~/.emacs.d/server/server
    emacsclient: connected to remote socket at 10.16.184.33
    
    此时,EmacClient正在前台运行,Ctrl-c会用SIGTERM停止它

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

    server-clients's value is
    (#<process server <10.16.184.33:52710>> #<process server <10.16.177.8:59460>>)
    

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

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

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

    具体而言,对于TTY客户端(即
    emacsclient-t
    ),服务器尝试在客户端的TTY上创建帧。显然,如果服务器运行在不同的系统上,这将不起作用。TTY是本地的,不能远程访问

    仅供参考,Emacs服务器的“TCP模式”从未用于远程访问。它只是不支持本地Unix套接字(即Windows)的系统的一种变通方法

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


    远程使用Emacs的正确方法是SSH。在远程系统上设置SSH服务器,然后通过SSH连接到系统,并在远程shell中启动
    EmacClient-t

    此信息错误或过期,它确实支持身份验证。@ChristopherDone如何?
    emacsclient: connected to remote socket at 10.16.177.8
    *ERROR*: Could not open file: /dev/pts/26