通过 SSH 使用 EMACS 时,有没有办法在不同的终端上生成同一个 emacs 会话的新框架?
在我的用例中,我运行着 screen,因此我有多个终端,并且可以使用 恢复它们所连接的伪终端pts
。假设我有两个“窗口”(用 GNU screen 的说法)。第一个窗口连接到 /dev/pts/12,第二个窗口连接到 /dev/pts/13。我在第一个窗口上启动 emacs。我有什么办法可以在第二个窗口上启动同一会话的新框架吗?
我一直在尝试传递参数,make-frame
但似乎允许我指定终端的用法要求终端对象已经存在,而且我看不到任何创建新终端对象的方法。
答案1
我认为我的问题可能格式不正确。我的目标是能够访问单个 emacs 会话(具有通用缓冲区、设置等)。我仍然不知道如何将 emacs 帧从现有 emacs 进程发送到任意终端,但从任意终端连接到现有 emacs 会话很容易。这可以使用 emacs 服务器和 来实现emacsclient
。
首先,您必须启动 emacs 服务器。如果您没有打开 emacs,您可以直接运行emacs --daemon
以将 emacs 启动到后台并让其启动服务器。如果您已经打开了 emacs,您可以运行M-x server-start
。
其次,从您想要连接到 emacs 服务器的终端运行emacsclient -t
。这将在当前终端上创建一个连接到现有 emacs 服务器会话的新框架。该-t
标志告诉 emacsclient 创建一个 tty 样式的框架,就像您使用该-nw
标志启动了 emacs 一样。如果您的终端与 X 显示器关联并且设置了 DISPLAY,您可以改为运行emacsclient -c
,这将生成一个新的 X 窗口,其中包含一个连接到您现有 emacs 会话的新 emacs 框架。
emacsclient 的手册页中有更多关于其使用的详细信息。