5

Emacs 手册中的这个页面描述了一个名为的函数make-frame-on-display,它允许您访问远程 Emacs 会话。我对这个功能的兴趣是使用它来共享缓冲区,以便与同事进行远程结对编程。

从页面:

甚至可以使用此功能让两个或多个用户在同一个 Emacs 作业中同时在两个显示器上打字。然而,在实践中,如果不同的用户不小心,他们很容易干扰彼此的编辑。

我该如何设置呢?我需要什么?我的伴侣需要什么?细节没有说明,但我对 Emacs 了解不够,不知道从哪里开始。

有没有其他方法可以获得共享的 Emacs 会话? 这个来自 Emacs Wiki 的页面引用了一个叫做multi-tty. 我上面提出的问题也适用于此。

哪个更好:multi-ttymake-frame-on-display?

4

4 回答 4

6

我还没有尝试过 multi-tty,但是 make-frame-on-display 非常简单。您键入 Mx make-frame-on-display,按回车键,然后键入您希望框架显示的显示器。例如:

我有我的本地主机 (thor) 运行 emacs,我想在一台名为 zeus 的机器上弹出一个框架,在其唯一的 X 显示器 (0.0) 上。所以我会输入 Mx make-frame-on-display<ret>zeus:0.0<ret>

可以了,好了!

您可能需要配置远程机器的 X 服务器以使用“xhost +thor”接受来自您机器的传入连接。您可能还需要配置其防火墙以允许 X11 端口(即 6000)上的传入连接。请记住,X 转发未加密,因此如果您没有与 LAN 上的某人合作,您可能需要通过VPN以保持私密性。

编辑以修复括号。

于 2010-07-14T12:14:56.250 回答
3

您是否考虑过在共享帐户上使用GNU screen进行结对编程?让它工作起来非常容易,您可以选择您和您的合作伙伴喜欢的任何基于控制台的编辑器(emacs、vim、joe、nano、zile,...)。但是,这当然不适用于无法在终端内运行的编辑器。

要进行设置,请在运行 ssh 的计算机上创建一个共享帐户。然后都登录到该帐户。其中一位合作伙伴开始屏幕

screen

另一个连接到它

screen -x

其中 -x 表示“附加到未分离的屏幕会话”。用户可以使用“Ca d”从他们的会话中分离出来。

于 2010-07-15T20:42:00.590 回答
3

你也可以让 zeus 类型的人ssh -X thor emacsclient -c

于 2010-07-14T15:13:10.643 回答
0

老问题,从 2016 年开始登陆此页面的任何人的新解决方案。

我在 Ubuntu 14.04 中进行了设置,它运行良好:

假设我想与世界另一端的同事 Joe 在 emacs 上共同编辑或演示一些很酷的东西。

  1. 确保两端都安装了 emacs 的 ssh 服务器。也就是说,MyPC 或 JoePC 必须是 SSH 服务器并安装了 Emacs。从现在开始,假设我让 Joe 在他的计算机上安装 SSH 服务器和 Emacs。
  2. 确保byobu已安装在 JoePC 上。Byobu 同时支持tmuxscreen作为后端(我更喜欢tmux更现代和更丰富的功能)。
  3. 我使用ssh remoteuser@joepc. 无需 X 转发。
  4. 从 byobu-ssh 终端打开 emacs TERM=xterm-256color && emacsclient --alternate-editor="" -t:. 可以为这个命令创建一个别名。我推荐这个长命令,因为它既可以在终端中提供更好的颜色支持,又可以在守护程序模式下运行 Emacs。daemon mode可以快速关闭和重新打开框架。
  5. 现在神奇的事情展开了:让乔用remoteuser我登录的方式登录;打开终端并开始byobu,如果它不适合他。
  6. 开始黑客攻击或摸索:-)

评论:

  • 因为byobu工作方式。这种方法适用于 byobu 终端内的任何其他程序。
  • 此设置的性能比 Teamviewer 或任何其他 GUI 远程桌面解决方案要好得多。
  • 因为连接是通过 ssh 直接连接到远程服务器,所以它与 ssh 连接所能提供的一样安全。
于 2016-04-05T16:29:11.617 回答