如何在Emacs中使用make-frame-on-display和multi-tty?

时间:2010-07-14 08:48:42

标签: emacs pair-programming

来自Emacs手册的

This page描述了一个名为make-frame-on-display的函数,它允许您访问远程Emacs会话。我对这个功能的兴趣是用它来与同事远程共享对编程的缓冲区。

从页面:

  

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

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

有没有其他方法可以获得共享的Emacs会话?来自Emacs Wiki的This page指的是multi-tty。我上面提到的问题也适用于此。

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

4 个答案:

答案 0 :(得分:5)

我没有尝试过multi-tty,但是make-frame-on-display非常简单。您键入M-x make-frame-on-display,点击返回,然后键入您希望框架显示的显示。例如:

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

全部设定!

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

修改括号。

答案 1 :(得分:3)

你也可以让这个人处于zeus类型ssh -X thor emacsclient -c

答案 2 :(得分:3)

你有没有考虑在共享帐户上使用GNU screen进行结对编程?它很容易让它工作,你可以选择任何基于控制台的编辑器你和你的伴侣(emacs,vim,joe,nano,zile,......)。但是,这当然不适用于无法在终端内运行的编辑器。

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

开始屏幕
screen

,另一个用

连接到它
screen -x

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

答案 3 :(得分:0)

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

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

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

  1. 确保在任一端安装了带有emacs的ssh服务器。也就是说,MyPC或JoePC必须是SSH服务器并安装了Emacs。从现在开始,假设我让Joe在他的计算机上安装SSH服务器和Emacs。
  2. 确保JoePC上安装了byobu。 Byobu支持tmuxscreen作为后端(我更喜欢tmux以获得更现代和功能更丰富的内容)。
  3. 我用ssh remoteuser@joepc连接到JoePC。不需要X-forwarding。
  4. 从byobu-ssh终端打开emacs:TERM=xterm-256color && emacsclient --alternate-editor="" -t。可以为此命令创建别名。我推荐这个长命令,因为它可以在终端中提供更好的颜色支持,并在守护进程模式下运行Emacs。 daemon mode可以快速关闭并重新打开框架。
  5. 现在神奇的展开:让乔登录同一个remoteuser我登录;打开终端并启动byobu,如果没有他的话。
  6. 开始黑客或摸索: - )
  7. 注释:

    • 因为byobu的工作方式。这种方法适用于byobu终端内的任何其他程序。
    • 此设置比Teamviewer或任何其他GUI远程桌面解决方案执行得更好。
    • 因为连接是通过ssh直接连接到远程服务器,所以它与ssh conenction可以提供的一样安全。